/**
 * RankNet
 */
export default class RankNet {
    /**
     * @param {number[]} layer_sizes Sizes of all layers
     * @param {string | string[]} [activations] Activation names
     * @param {number} [rate] Learning rate
     */
    constructor(layer_sizes: number[], activations?: string | string[], rate?: number);
    _rate: number;
    _layer_sizes: number[];
    _activations: string | string[];
    _a: any[];
    _w: any[];
    _b: any[];
    _optimizer: {
        readonly lr: number;
        params: {};
        delta(key: any, value: any): any;
    };
    _init(sizes: any): void;
    _calc(x: any): any[][];
    /**
     * Fit model.
     * @param {Array<Array<number>>} x1 Training data 1
     * @param {Array<Array<number>>} x2 Training data 2
     * @param {Array<-1 | 0 | 1>} comp Sign of (data 1 rank - data 2 rank). If data 1 rank is bigger than data 2, corresponding value is 1.
     * @returns {number} loss
     */
    fit(x1: Array<Array<number>>, x2: Array<Array<number>>, comp: Array<-1 | 0 | 1>): number;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<number>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<number>;
}
