import { BaseHistogramFilter } from './BaseHistogramFilter';
/**
 * This class is an especialization of the HistogramFilter for categorical histograms, i.e. those
 * which instead of a numerical range, have a category for each bucket. The selection is an array
 * of strings, and the expression it provides for VL is a viewportHistogram with only a column.
 *
 * As for the filter, it uses the $column in [] expression of VL
 *
 * @export
 * @class CategoricalHistogramFilter
 * @extends {BaseHistogramFilter<string[]>}
 */
export declare class CategoricalHistogramFilter extends BaseHistogramFilter<string[]> {
    private _lastHistogram;
    private _globalHistogram;
    /**
     * Creates an instance of CategoricalHistogramFilter.
     * @param {*} carto CARTO VL namespace
     * @param {*} layer CARTO VL layer
     * @param {(any | string)} histogram Airship histogram widget HTML element or a selector
     * @param {string} columnName The column to pull data from
     * @param {*} source CARTO VL source
     * @param {boolean} [readOnly=true] Whether this histogram allows filtering or not
     * @param {weight} weight Value to weight by
     * @param {object} [inputExpression=null] VL Expression to use instead of s.prop for the histogram input
     * @memberof CategoricalHistogramFilter
     */
    constructor(carto: any, layer: any, histogram: any | string, columnName: string, source: any, readOnly: boolean, weight: number | string, showTotals?: boolean, inputExpression?: object);
    /**
     * Returns either null or an expression like: `$column in [_selection]`
     *
     * @readonly
     * @type {string}
     * @memberof CategoricalHistogramFilter
     */
    readonly filter: string;
    /**
     * Returns a viewportHistogram with only the column as an argument (no buckets)
     *
     * @readonly
     * @type {*}
     * @memberof CategoricalHistogramFilter
     */
    readonly expression: any;
    readonly globalExpression: any;
    protected bindDataLayer(): void;
    protected selectionChanged(evt: CustomEvent<any>): void;
}
