/**
 * Multi layer perceptron classifier
 */
export class MLPClassifier {
    /**
     * @param {number[]} hidden_sizes Sizes of hidden layers
     * @param {'identity' | 'elu' | 'gaussian' | 'leaky_relu' | 'relu' | 'sigmoid' | 'softplus' | 'softsign' | 'tanh'} [activation] Activation name
     */
    constructor(hidden_sizes: number[], activation?: 'identity' | 'elu' | 'gaussian' | 'leaky_relu' | 'relu' | 'sigmoid' | 'softplus' | 'softsign' | 'tanh');
    _hidden_sizes: number[];
    _activations: any[];
    _model: MLP;
    _classes: any[];
    _epoch: number;
    /**
     * Category list
     * @type {*[]}
     */
    get categories(): any[];
    /**
     * Epoch
     * @type {number}
     */
    get epoch(): number;
    /**
     * Returns object representation.
     * @returns {LayerObject[]} Object represented this neuralnetwork
     */
    toObject(): LayerObject[];
    /**
     * Fit model.
     * @param {Array<Array<number>>} train_x Training data
     * @param {*[]} 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: any[], iteration: number, rate?: number, batch?: number): number;
    _fitonce(x: any, y: any, r: any): Matrix<number>;
    /**
     * Returns predicted probabilities.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    probability(x: Array<Array<number>>): Array<Array<number>>;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @returns {*[]} Predicted values
     */
    predict(x: Array<Array<number>>): any[];
}
/**
 * Multi layer perceptron regressor
 */
export class MLPRegressor {
    /**
     * @param {number[]} hidden_sizes Sizes of hidden layers
     * @param {'identity' | 'elu' | 'gaussian' | 'leaky_relu' | 'relu' | 'sigmoid' | 'softplus' | 'softsign' | 'tanh'} [activation] Activation name
     */
    constructor(hidden_sizes: number[], activation?: 'identity' | 'elu' | 'gaussian' | 'leaky_relu' | 'relu' | 'sigmoid' | 'softplus' | 'softsign' | 'tanh');
    _hidden_sizes: number[];
    _activations: any[];
    _model: MLP;
    _epoch: number;
    /**
     * Epoch
     * @type {number}
     */
    get epoch(): number;
    /**
     * Returns object representation.
     * @returns {LayerObject[]} Object represented this neuralnetwork
     */
    toObject(): LayerObject[];
    /**
     * 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;
    _fitonce(x: any, y: any, r: any): Matrix<number>;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<Array<number>>;
}
export type LayerObject = import("./nns/graph").LayerObject;
declare class MLP {
    constructor(layer_sizes: any, activations: any);
    _layer_sizes: any;
    _activations: any;
    _a: any[];
    _w: Matrix<number>[];
    _b: Matrix<number>[];
    _optimizer: adam;
    _optimizer_mng: {
        readonly lr: number;
        params: {};
        delta(key: any, value: any): any;
    };
    calc(x: any): any;
    _i: any[];
    _o: any[];
    update(e: any, r: any): void;
    toObject(): {
        type: string;
    }[];
}
import Matrix from '../util/matrix.js';
import { adam } from './nns/optimizer.js';
export {};
