import { FeatureType, FilterGraphElement, GraphDatasource, GraphElement } from '@csnext/cs-data';
import crossfilter from 'crossfilter2';
import { TimeRange } from '@csnext/cs-crossfilter';
export declare class GraphCrossFilter extends FilterGraphElement {
    static CROSSFILTER: string;
    static CROSSFILTER_DATALOADED: string;
    static UPDATE_CHART: string;
    static FILTER_CHANGED: string;
    dimensions: {
        [id: string]: crossfilter.Dimension<any, any>[];
    };
    groups: {
        [id: string]: crossfilter.Group<any, any, any>;
    };
    featureType?: FeatureType;
    ndx?: crossfilter.Crossfilter<any>;
    timeRange?: TimeRange;
    allData: GraphElement[];
    constructor(source?: GraphDatasource);
    addDimension(id: string, dim: crossfilter.Dimension<any, any>): void;
    addGroup(id: string, group: crossfilter.Group<any, any, any>): void;
    updateCrossfilter(dataset: GraphElement[]): Promise<void>;
}
