/**
 * Ordering points to identify the clustering structure
 */
export default class OPTICS {
    /**
     * @param {number} threshold Threshold
     * @param {number} [eps] Radius to determine neighborhood
     * @param {number} [minPts] Number of neighborhood with core distance
     * @param {'euclid' | 'manhattan' | 'chebyshev' | function (number[], number[]): number} [metric] Metric name
     */
    constructor(threshold: number, eps?: number, minPts?: number, metric?: "euclid" | "manhattan" | "chebyshev" | ((arg0: number[], arg1: number[]) => number));
    _threshold: number;
    _eps: number;
    _minPts: number;
    _metric: "euclid" | "manhattan" | "chebyshev" | ((arg0: number[], arg1: number[]) => number);
    _d: (a: any, b: any) => any;
    /**
     * Fit model.
     * @param {Array<Array<number>>} datas Training data
     */
    fit(datas: Array<Array<number>>): void;
    _core_distance: any[];
    /**
     * Returns predicted categories.
     * @returns {number[]} Predicted values
     */
    predict(): number[];
}
