import { ScaleLinear, ScaleTime } from 'd3-scale'; import { BucketsVirtualContext } from './buckets/buckets.js'; import { HistogramParams } from './HistogramParams.js'; import { BrushCornerTooltips, BucketInterval, ChartAxes, ChartDimensions, DataType, HistogramData, HistogramSVGG, HistogramTooltipYValue, SelectedOutputValues, SwimlaneAxes, SwimlaneData } from './utils/HistogramUtils.js'; export declare abstract class AbstractHistogram { histogramParams: HistogramParams; brushCornerTooltips: BrushCornerTooltips; /** Contexts */ protected context: HistogramSVGG; protected barsContext: HistogramSVGG; protected bucketsContext: BucketsVirtualContext; protected noDatabarsContext: HistogramSVGG; protected tooltipCursorContext: HistogramSVGG; protected allAxesContext: HistogramSVGG; /** Chart dimensions */ protected chartDimensions: ChartDimensions; protected isWidthFixed: boolean; protected isHeightFixed: boolean; /** Data */ protected dataDomain: Array; protected dataInterval: number; /** Brush selection */ protected selectionInterval: SelectedOutputValues; protected hasSelectionExceededData: any; protected selectedBars: Set; protected fromSetInterval: boolean; /** Axes && ticks */ protected xTicksAxis: any; protected xLabelsAxis: any; protected xAxis: any; protected yDimension: number; protected plottingCount: number; protected minusSign: number; protected _xlabelMeanWidth: number; protected _previousXLabelTicks: any; protected _previousSize: any; protected _isWidthIncrease: boolean; constructor(); plot(data: Array | SwimlaneData): void; init(): void; abstract resize(histogramContainer: HTMLElement): void; /** * initialize a new BrushCornerTooltips object */ setHTMLElementsOfBrushCornerTooltips(rightHTMLElement: HTMLElement, leftHTMLElement: any): void; protected setHistogramMargins(): void; protected initializeDescriptionValues(start: Date | number, end: Date | number, dataInterval: number): void; protected initializeChartDimensions(): void; protected initializeChartHeight(): void; /** * Create the link between the scale of the chart and the width available */ protected getXDomainScale(rangeStart: number, rangeEnd: number): ScaleTime | ScaleLinear; protected getHistogramMinMaxBorders(data: Array): [number | Date, number | Date]; protected getFollowingLastBucket(data: any): HistogramData; protected getXDomainExtent(data: Array, selectedStartValue: Date | number, selectedEndValue: Date | number): Array; /** * Removes the indicator behind the hovered bucket of the histogram */ protected clearTooltipCursor(): void; protected drawChartAxes(chartAxes: ChartAxes | SwimlaneAxes, leftOffset: number): void; createXLabelAxis(svgNode: HistogramSVGG, xLabelsAxis: any, leftOffset: number): import("d3-selection").Selection; getHorizontalOffset(chartAxes: any): number; updateNumberOfLabelDisplayedIfOverlap(chartAxes: ChartAxes | SwimlaneAxes, leftOffset?: number): void; getDimension(node: any): DOMRect; isOverlapXAxis(l: any, r: any): boolean; protected plotBars(data: Array, axes: ChartAxes | SwimlaneAxes, barWeight?: number): void; protected isValueValid(bucket: HistogramData): boolean; protected getHistogramDataInterval(data: Array): number; protected getbucketInterval(bucketInterval: number, dataType: DataType): BucketInterval; protected emitTooltip(display: boolean, xy: [number, number], xStartValue: string, xEndValue: string, ys: HistogramTooltipYValue[]): void; protected abstract setDataInterval(data: Array | Map>): void; protected abstract getDataInterval(data: Array | Map>): number; protected abstract getAxes(): ChartAxes | SwimlaneAxes; private createEmptyBrushCornerTooltips; }