/**
 * @ignore
 * @typedef {import("./nns/graph").LayerObject} LayerObject
 */
/**
 * Variational Autoencoder
 */
export default class VAE {
    /**
     * @param {number} in_size Input size
     * @param {number} noise_dim Number of noise dimension
     * @param {LayerObject[]} enc_layers Layers of encoder
     * @param {LayerObject[]} dec_layers Layers of decoder
     * @param {string} optimizer Optimizer of the network
     * @param {number | null} class_size Class size for conditional type
     * @param {'' | 'conditional'} type Type name
     */
    constructor(in_size: number, noise_dim: number, enc_layers: LayerObject[], dec_layers: LayerObject[], optimizer: string, class_size: number | null, type: '' | 'conditional');
    _type: "" | "conditional";
    _reconstruct_rate: number;
    _epoch: number;
    _decodeNet: NeuralNetwork;
    _aeNet: NeuralNetwork;
    /**
     * Epoch
     * @type {number}
     */
    get epoch(): number;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     * @param {Array<Array<number>> | null} y Conditional values
     * @param {number} iteration Iteration count
     * @param {number} rate Learning rate
     * @param {number} batch Batch size
     * @returns {number} Loss value
     */
    fit(x: Array<Array<number>>, y: Array<Array<number>> | null, iteration: number, rate: number, batch: number): number;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @param {Array<Array<number>> | null} y Conditional values
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>, y: Array<Array<number>> | null): Array<Array<number>>;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @param {Array<Array<number>> | null} y Conditional values
     * @returns {Array<Array<number>>} Predicted values
     */
    reduce(x: Array<Array<number>>, y: Array<Array<number>> | null): Array<Array<number>>;
}
export type LayerObject = import("./nns/graph").LayerObject;
import NeuralNetwork from './neuralnetwork.js';
