/**
 * Label spreading
 */
export default class LabelSpreading {
    /**
     * @param {number} [alpha] Clamping factor
     * @param {'rbf' | 'knn' | { name: 'rbf', sigma?: number, k?: number } | { name: 'knn', k?: number }} [method] Method name
     */
    constructor(alpha?: number, method?: "rbf" | "knn" | {
        name: "rbf";
        sigma?: number;
        k?: number;
    } | {
        name: "knn";
        k?: number;
    });
    _affinity: {
        name: "rbf";
        sigma?: number;
        k?: number;
    } | {
        name: "knn";
        k?: number;
    } | {
        name: "rbf" | "knn";
    };
    _alpha: number;
    _affinity_matrix(x: any): Matrix<number>;
    _laplacian(x: any): Matrix<number>;
    /**
     * Initialize model.
     * @param {Array<Array<number>>} x Training data
     * @param {(* | null)[]} y Target values
     */
    init(x: Array<Array<number>>, y: (any | null)[]): void;
    _y: any[];
    _classes: any[];
    _l: Matrix<number>;
    _probs: any;
    /**
     * Fit model.
     */
    fit(): void;
    /**
     * Returns predicted categories.
     * @returns {*[]} Predicted values
     */
    predict(): any[];
}
import Matrix from '../util/matrix.js';
