import { Selection as MosaicSelection } from '@uwdata/mosaic-core'; import { ICosmographInternalApi } from "../internal"; import { CosmographData } from "../config/interfaces"; /** * Represents the structure of crossfilter sets for links, points, and their intersection. */ export interface Crossfilter { links: Set; points: Set; intersection: Set; } /** * Manages all crossfilter-based operations, such as computing and storing * filtered point indices from links or points, generating their intersection, * and tracking the Mosaic selections. */ export declare class CosmographCrossfilter { private _; private _linksSelection; private _pointsSelection; private _onLinksFiltered; private _onPointsFiltered; private _crossfilter; constructor(_: ICosmographInternalApi); get filtered(): Crossfilter; get pointsSelection(): MosaicSelection; get linksSelection(): MosaicSelection; get onLinksFiltered(): (data: CosmographData) => void; get onPointsFiltered(): (data: CosmographData) => void; get isFilteringActive(): boolean; /** * Handle new filters arriving for either links or points, * get the new sets of point indices, generate their intersection, * and update the visualization accordingly. */ private _handleCrossfiltering; /** * Populate crossfilter.points or crossfilter.links with the relevant set of point indices, * based on the arrow table and whichever type of selection triggered the filter. */ private _getSetForCrossfilter; /** * Compute the intersection of crossfilter.links and crossfilter.points. */ private _getIntersection; }