import type { FloatArray } from "@thi.ng/api";
import { type DistanceFn, type ReadonlyVec, type VecOpVN, type VecOpVV } from "@thi.ng/vectors";
import type { TSNEOpts } from "./api.js";
export declare const DEFAULT_OPTS: TSNEOpts;
export declare class TSNE {
    opts: TSNEOpts;
    n: number;
    dim: number;
    iter: number;
    p: FloatArray;
    q: FloatArray;
    qu: FloatArray;
    points: number[][];
    steps: number[][];
    gains: number[][];
    gradient: FloatArray[];
    ymean: FloatArray;
    opDist: DistanceFn;
    opDivN: VecOpVN;
    opSub: VecOpVV;
    constructor(points: ReadonlyVec[], opts?: Partial<TSNEOpts>);
    init(points: ReadonlyVec[]): void;
    update(): number;
    computeGradient(): {
        cost: number;
        gradient: FloatArray[];
    };
}
//# sourceMappingURL=tsne.d.ts.map