/**
 * Support vector machine
 */
export default class SVM {
    /**
     * @param {'gaussian' | 'linear' | { name: 'gaussian', d?: number } | { name: 'linear' } | function (number[], number[]): number} kernel Kernel name
     */
    constructor(kernel: "gaussian" | "linear" | {
        name: "gaussian";
        d?: number;
    } | {
        name: "linear";
    } | ((arg0: number[], arg1: number[]) => number));
    _n: number;
    _a: any[];
    _x: any[];
    _t: any[];
    _b: number;
    _C: number;
    _eps: number;
    _tolerance: number;
    _err: any[];
    _kernel: any;
    /**
     * Initialize this model.
     * @param {Array<Array<number>>} train_x Training data
     * @param {Array<1 | -1>} train_y Target values
     */
    init(train_x: Array<Array<number>>, train_y: Array<1 | -1>): void;
    _alldata: boolean;
    /**
     * Fit model.
     */
    fit(): void;
    _fitOnce(all?: boolean): number;
    _predict1(data: any): number;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} data Sample data
     * @returns {number[]} Predicted values
     */
    predict(data: Array<Array<number>>): number[];
}
