import { PointShape } from '@cosmos.gl/graph'; import { Selection as MosaicSelection } from '@uwdata/mosaic-core'; import { WasmDuckDBConnection } from "../duckdb/duckdb-wasm"; import { CosmographInputData, CosmographData, ColorAccessorFn, SizeAccessorFn, CosmographConfig, CosmographPointInput, CosmographLinkInput } from "./config/interfaces"; import { PointColorStrategyType } from "./strategies/point-color"; import { PointSizeStrategyType } from "./strategies/point-size"; import { LinkColorStrategyType } from "./strategies/link-color"; import { LinkWidthStrategyType } from "./strategies/link-width"; import { Crossfilter } from "./managers"; import { CosmographCustomLabel } from "./modules/labels"; import { CosmographStats, ICosmograph } from './types'; import { MosaicVgplotComponent } from './modules/mosaic-vgplot/compenent-wrapper'; export declare class Cosmograph implements ICosmograph { private _internalApi; private _eventTarget; private _dbReadinessPromise; private _labels?; private _cosmos?; private _cosmosInitialized; private _dbCoordinator?; private _dataValidator; private _configManager; private _dataManager; private _eventManager; private _crossfilter; private _linkAggregationManager; private _licensingManager; private _rectangularSelection; private _polygonalSelection; private _pointSelectionClient?; private _mosaicComponentManager?; private _containerElement; private _popupElement; private _cosmosElement; private _messageDivElement; private _focusedPointIndex; private _enableSimulation; private _pointsHaveLayout; private _isDestroyed; private _summary; private _stats; /** * Creates a new instance of the Cosmograph class. * @param containerElement - The HTML div element that will contain the Cosmograph visualization. * @param config - The configuration options for the Cosmograph instance. * @param duckDbConnection - (Optional) The connection string or `WasmDuckDBConnection` instance for the DuckDB database. */ constructor(containerElement: HTMLElement, config: CosmographConfig, duckDbConnection?: string | WasmDuckDBConnection); private _initializeInternalApi; private _initializeDB; private _initializeHTMLElements; private _addMessageElement; private _initializeCosmos; private _initializeLabels; private _initializeClients; private _dropLocalTables; private _ensureAlive; private _updateMessage; private _updateSummary; private _updateStats; private _dbReady; dataUploaded(): Promise; private get _config(); get stats(): CosmographStats; get crossfilter(): Crossfilter; get maxPointSize(): number; get progress(): number | undefined; get isSimulationRunning(): boolean | undefined; get isSimulationAvailable(): boolean; get pointDegrees(): number[] | undefined; get pointDirections(): number[] | undefined; get rescaleXFn(): ((x: number) => number) | undefined; get rescaleYFn(): ((y: number) => number) | undefined; get focusedPointIndex(): number | undefined; get clusterMapping(): Map; get activePointColorStrategy(): PointColorStrategyType; get activePointSizeStrategy(): PointSizeStrategyType; get activeLinkColorStrategy(): LinkColorStrategyType; get activeLinkWidthStrategy(): LinkWidthStrategyType; get linksTableName(): string; get pointsTableName(): string; getConfig(): Promise; getActivePointColorFn(): Promise; getActivePointSizeFn(): Promise; getActiveLinkColorFn(): Promise; getActiveLinkWidthFn(): Promise; setConfig(config?: CosmographConfig): Promise; captureScreenshot(fileName?: string, scale?: number): void; getPointPositions(): number[] | undefined; getClusterPositions(): number[] | undefined; getPointColors(): Float32Array | undefined; getPointSizes(): Float32Array | undefined; getLinkColors(): Float32Array | undefined; getLinkWidths(): Float32Array | undefined; setPointShapes(shapes: PointShape[]): void; setPointImageIndices(indices: number[]): void; setPointImageSizes(sizes: number[]): void; setImageData(imageData: ImageData | ImageData[]): void; getPointPositionByIndex(index: number): [number, number] | undefined; activateRectSelection(): void; deactivateRectSelection(): void; activatePolygonalSelection(): void; deactivatePolygonalSelection(): void; getSelectedPointIndices(): number[] | undefined; getSelectedLinkIndices(): number[] | undefined; selectPointsInRect(selection: [[number, number], [number, number]] | null, addToSelection?: boolean): void; selectPointsInPolygon(polygonPoints: [number, number][], addToSelection?: boolean): void; unselectPointsInRect(selection: [[number, number], [number, number]] | null): void; unselectPointsInPolygon(polygonPoints: [number, number][]): void; selectPoints(pointIndices: number[] | null, addToSelection?: boolean): void; selectPoint(pointIndexBy?: number, addToSelection?: boolean, selectConnectedPoints?: boolean): void; unselectPoint(pointIndexBy?: number, unselectConnectedPoints?: boolean): void; unselectPointsByIndices(indicesToRemove: number[]): void; unselectAllPoints(): void; setFocusedPoint(index?: number): void; setPinnedPoints(indices: number[]): void; start(alpha?: number): void; pause(): void; unpause(): void; stop(): void; step(): void; setZoomLevel(value: number, duration?: number): void; getZoomLevel(): number | undefined; setZoomTransformByPointPositions(pointPositions: Float32Array, duration?: number, scale?: number, padding?: number): void; zoomToPoint(index: number, duration?: number | undefined, scale?: number, canZoomOut?: boolean): void; fitView(duration?: number | undefined, padding?: number | undefined): void; fitViewByIndices(indices: number[], duration?: number | undefined, padding?: number | undefined): void; fitViewByCoordinates(coordinates: number[], duration?: number | undefined, padding?: number | undefined): void; getConnectedPointIndices(index: number): number[] | undefined; getPointDegrees(index: number): { inDegree: number; outDegree: number; } | undefined; spaceToScreenPosition(spacePosition: [number, number]): [number, number] | undefined; screenToSpacePosition(screenPosition: [number, number]): [number, number] | undefined; spaceToScreenRadius(spaceRadius: number): number | undefined; getPointRadiusByIndex(index: number): number | undefined; getPointScreenRadiusByIndex(index: number): number; trackPointPositionsByIndices(indices: number[]): void; getTrackedPointPositionsArray(): number[] | undefined; getTrackedPointPositionsMap(): ReadonlyMap | undefined; getSampledPoints(): { indices: number[]; positions: number[]; } | undefined; getSampledLinks(): { indices: number[]; positions: number[]; angles: number[]; } | undefined; getSampledPointPositionsMap(): Map | undefined; getSampledLinkPositionsMap(): Map | undefined; getActiveSelectionSourceId(): string | undefined; get pointsSelection(): MosaicSelection; get linksSelection(): MosaicSelection; getPointIndicesByIds(ids: string[]): Promise; getPointIdsByIndices(indices: number[]): Promise; getPointsByIndices(indices: number[]): Promise; getPointIndicesByExactValues(column: string, values: (number | string)[]): Promise; getPointIndicesByNumericValue(column: string, value: number | string, isMax: boolean): Promise; getPointIndicesByLinksExactValues(column: string, values: (number | string)[]): Promise; getPointIndicesByLinksNumericValue(column: string, value: number | string, isMax: boolean): Promise; getLinksByPointIds(ids: string[]): Promise; getLinksByPointIndices(indices: number[]): Promise; getLinksData(): Promise; getPointsData(): Promise; convertCosmographDataToObject(data: CosmographData): Record[]; flattenPositions(positions: [number, number][]): number[] | undefined; pair(pointPositions: number[]): [number, number][] | undefined; addPoints(points: CosmographPointInput[]): Promise; addLinks(links: CosmographLinkInput[]): Promise; removePointsByIndices(indices: number[], removeAttachedLinks?: boolean): Promise; removePointsByIds(ids: string[]): Promise; removeLinksByPointIdPairs(pairs: [string, string][]): Promise; removeLinksByPointIndicesPairs(pairs: [number, number][]): Promise; addMosaicComponent(component: HTMLElement, container: HTMLElement, config?: { id?: string; }): Promise; removeMosaicComponent(id: string): Promise; getMosaicComponents(): ReadonlyMap | undefined; reset(total?: boolean): Promise; destroy(): Promise; } export type { CosmographConfig, WasmDuckDBConnection, CosmographInputData, CosmographCustomLabel, CosmographData, PointShape as CosmographPointShape }; export type { MosaicVgplotComponent } from './modules/mosaic-vgplot/compenent-wrapper';