/**
 * Implicit online Learning with Kernels
 */
export class ILK {
    /**
     * @param {number} [eta] Learning rate
     * @param {number} [lambda] Regularization constant
     * @param {number} [c] Penalty imposed on point prediction violations.
     * @param {'gaussian' | 'polynomial' | { name: 'gaussian', s?: number } | { name: 'polynomial', d?: number } | function (number[], number[]): number} [kernel] Kernel name
     * @param {'square' | 'hinge' | 'logistic'} [loss] Loss type name
     */
    constructor(eta?: number, lambda?: number, c?: number, kernel?: "gaussian" | "polynomial" | {
        name: "gaussian";
        s?: number;
    } | {
        name: "polynomial";
        d?: number;
    } | ((arg0: number[], arg1: number[]) => number), loss?: "square" | "hinge" | "logistic");
    _eta: number;
    _lambda: number;
    _c: number;
    _kernel: any;
    _loss: (f: any, k: any, y: any) => number;
    _rho: number;
    _sv: any[];
    _a: any[];
    /**
     * Update model parameters with one data.
     * @param {number[]} x Training data
     * @param {1 | -1} y Target value
     */
    update(x: number[], y: 1 | -1): void;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     * @param {Array<1 | -1>} y Target values
     */
    fit(x: Array<Array<number>>, y: Array<1 | -1>): void;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} data Sample data
     * @returns {(1 | -1)[]} Predicted values
     */
    predict(data: Array<Array<number>>): (1 | -1)[];
}
/**
 * Sparse Implicit online Learning with Kernels
 */
export class SILK extends ILK {
    /**
     * @param {number} [eta] Learning rate
     * @param {number} [lambda] Regularization constant
     * @param {number} [c] Penalty imposed on point prediction violations.
     * @param {number} [w] Buffer size
     * @param {'gaussian' | 'polynomial' | { name: 'gaussian', s?: number } | { name: 'polynomial', d?: number } | function (number[], number[]): number} [kernel] Kernel name
     * @param {'square' | 'hinge' | 'graph' | 'logistic'} [loss] Loss type name
     */
    constructor(eta?: number, lambda?: number, c?: number, w?: number, kernel?: "gaussian" | "polynomial" | {
        name: "gaussian";
        s?: number;
    } | {
        name: "polynomial";
        d?: number;
    } | ((arg0: number[], arg1: number[]) => number), loss?: "square" | "hinge" | "graph" | "logistic");
    _w: number;
}
