/**
 * @preserve TypeScript port:
 * Copyright 2015-2016 Igor Bezkrovnyi
 * All rights reserved. (MIT Licensed)
 *
 * neuquant.ts - part of Image Quantization Library
 */
import { Palette } from "../../utils/palette";
import { PointContainer } from "../../utils/pointContainer";
import { IDistanceCalculator } from "../../distance/common";
import { IPaletteQuantizer } from "../common";
export declare class NeuQuantFloat implements IPaletteQuantizer {
    private static _prime1;
    private static _prime2;
    private static _prime3;
    private static _prime4;
    private static _minpicturebytes;
    private static _nCycles;
    private static _initialBiasShift;
    private static _initialBias;
    private static _gammaShift;
    private static _betaShift;
    private static _beta;
    private static _betaGamma;
    private static _radiusBiasShift;
    private static _radiusBias;
    private static _radiusDecrease;
    private static _alphaBiasShift;
    private static _initAlpha;
    private static _radBiasShift;
    private static _radBias;
    private static _alphaRadBiasShift;
    private static _alphaRadBias;
    private _pointArray;
    private _networkSize;
    private _network;
    /** sampling factor 1..30 */
    private _sampleFactor;
    private _radPower;
    private _freq;
    private _bias;
    private _distance;
    constructor(colorDistanceCalculator: IDistanceCalculator, colors?: number);
    sample(pointBuffer: PointContainer): void;
    quantize(): Palette;
    private _init();
    /**
     * Main Learning Loop
     */
    private _learn();
    private _buildPalette();
    /**
     * Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2)) in radpower[|i-j|]
     */
    private _alterNeighbour(rad, i, b, g, r, al);
    /**
     * Move neuron i towards biased (b,g,r) by factor alpha
     */
    private _alterSingle(alpha, i, b, g, r, a);
    /**
     * Search for biased BGR values
     * description:
     *    finds closest neuron (min dist) and updates freq
     *    finds best neuron (min dist-bias) and returns position
     *    for frequently chosen neurons, freq[i] is high and bias[i] is negative
     *    bias[i] = _gamma*((1/this._networkSize)-freq[i])
     *
     * Original distance equation:
     *        dist = abs(dR) + abs(dG) + abs(dB)
     */
    private _contest(b, g, r, al);
}
