/**
 * Budgeted Stochastic Gradient Descent
 */
export default class BSGD {
    /**
     * @param {number} [b] Budget size
     * @param {number} [eta] Learning rate
     * @param {number} [lambda] Regularization parameter
     * @param {'removal' | 'projection' | 'merging'} [maintenance] Maintenance type
     * @param {'gaussian' | 'polynomial' | { name: 'gaussian', s?: number } | { name: 'polynomial', d?: number } | function (number[], number[]): number} [kernel] Kernel name
     */
    constructor(b?: number, eta?: number, lambda?: number, maintenance?: 'removal' | 'projection' | 'merging', kernel?: 'gaussian' | 'polynomial' | {
        name: 'gaussian';
        s?: number;
    } | {
        name: 'polynomial';
        d?: number;
    } | ((arg0: number[], arg1: number[]) => number));
    _b: number;
    _eta: number;
    _lambda: number;
    _maintenance: "removal" | "projection" | "merging";
    _kernel: any;
    _sv: any[];
    _alpha: any[];
    /**
     * 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)[];
}
/**
 * Multiclass Budgeted Stochastic Gradient Descent
 */
export class MulticlassBSGD {
    /**
     * @param {number} [b] Budget size
     * @param {number} [eta] Learning rate
     * @param {number} [lambda] Regularization parameter
     * @param {'removal' | 'projection' | 'merging'} [maintenance] Maintenance type
     * @param {'gaussian' | 'polynomial' | { name: 'gaussian', s?: number } | { name: 'polynomial', d?: number } | function (number[], number[]): number} [kernel] Kernel name
     */
    constructor(b?: number, eta?: number, lambda?: number, maintenance?: 'removal' | 'projection' | 'merging', kernel?: 'gaussian' | 'polynomial' | {
        name: 'gaussian';
        s?: number;
    } | {
        name: 'polynomial';
        d?: number;
    } | ((arg0: number[], arg1: number[]) => number));
    _b: number;
    _eta: number;
    _lambda: number;
    _maintenance: "removal" | "projection" | "merging";
    _kernel: any;
    _classes: any[];
    _sv: any[];
    _alpha: any[];
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     * @param {*[]} y Target values
     */
    fit(x: Array<Array<number>>, y: any[]): void;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} data Sample data
     * @returns {*[]} Predicted values
     */
    predict(data: Array<Array<number>>): any[];
}
