import { type AgDrawingMode, type AgRangeAreaSeriesItemType, type AgRangeAreaSeriesOptions, type AgSeriesMarkerStyle, type SelectionState, _ModuleSupport } from 'ag-charts-community'; import { ChartAxisDirection, type DomainWithMetadata, type DynamicContext, type LabelMeasureContext, type LabelPlacement, type PlacedLabel, type Point, type SeriesLabelDefaults } from 'ag-charts-core'; import type { AgNumericValue } from 'ag-charts-types'; import { type RangeAreaSeriesDataAggregationFilter } from './rangeAreaAggregation'; import { type RangeAreaMarkerDatum, RangeAreaProperties } from './rangeAreaProperties'; import { type RangeAreaContext, type RangeAreaLabelDatum } from './rangeAreaUtil'; /** * Context object for efficient node datum creation. * Caches expensive-to-compute values that are reused across all datum iterations. */ interface RangeAreaSeriesNodeDatumContext extends _ModuleSupport.CartesianCreateNodeDataContext, LabelMeasureContext { readonly yHighValues: AgNumericValue[]; readonly yLowValues: AgNumericValue[]; readonly xOffset: number; readonly xAxisRange: [number, number]; readonly dataAggregationFilter: RangeAreaSeriesDataAggregationFilter | undefined; readonly range: number; readonly labelsEnabled: boolean; readonly labelPlacements: Record; readonly labelMarkerSize: Record; readonly labelAnchor: Record; readonly yLowKey: string; readonly yHighKey: string; readonly item: RangeAreaProperties['item']; readonly yDomain: any[]; readonly connectMissingData: boolean; readonly interpolation: RangeAreaProperties['interpolation']; labelData: RangeAreaLabelDatum[]; spanPoints: Array; } declare class RangeAreaSeriesNodeEvent extends _ModuleSupport.SeriesNodeEvent { readonly xKey?: string; readonly yLowKey?: string; readonly yHighKey?: string; constructor(type: TEvent, nativeEvent: Event, datum: RangeAreaMarkerDatum, series: RangeAreaSeries, selectionState: SelectionState | undefined); } interface RangeAreaSpanPointDatum { high: _ModuleSupport.LineSpanPointDatum; low: _ModuleSupport.LineSpanPointDatum; } /** * Consolidated type interface for RangeAreaSeries. */ interface RangeAreaSeriesTypes extends _ModuleSupport.CartesianSeriesTypes { readonly node: _ModuleSupport.Marker; readonly options: AgRangeAreaSeriesOptions; readonly properties: RangeAreaProperties; readonly datum: RangeAreaMarkerDatum; readonly label: RangeAreaLabelDatum; readonly context: RangeAreaContext; readonly stackContext: never; readonly createNodeDataContext: RangeAreaSeriesNodeDatumContext; } type GetMarkerStyleArg = Parameters<_ModuleSupport.CartesianSeries['getMarkerStyle']>[I]; export declare class RangeAreaSeries extends _ModuleSupport.CartesianSeries { static readonly className = "RangeAreaSeries"; static readonly type: "range-area"; properties: RangeAreaProperties; protected readonly NodeEvent: typeof RangeAreaSeriesNodeEvent; private readonly aggregationManager; private hideWithSize0; private placedLabelData; constructor(moduleCtx: DynamicContext<_ModuleSupport.ChartRegistry>); renderToOffscreenCanvas(): boolean; processData(dataController: _ModuleSupport.DataController): Promise; private aggregateData; protected createBucketLookupFeature(): _ModuleSupport.BucketLookupFeature; private estimateTargetRange; /** * Creates the context object for efficient node datum creation. * Caches expensive-to-compute values that are reused across all datum iterations. */ protected createNodeDatumContext(xAxis: _ModuleSupport.ChartAxis, yAxis: _ModuleSupport.ChartAxis): RangeAreaSeriesNodeDatumContext | undefined; xCoordinateRange(xValue: any): [number, number]; yCoordinateRange(yValues: any[]): [number, number]; getSeriesDomain(direction: ChartAxisDirection): DomainWithMetadata; getSeriesRange(_direction: ChartAxisDirection, visibleRange: [number, number]): [number, number]; /** * Processes a single datum and updates the context's marker, label, and span arrays. * Uses the scratch object to avoid per-iteration allocations. * * @param yHighValueOverride - Optional override for yHighValue, used in aggregation mode * when the extreme values come from different data points * @param yLowValueOverride - Optional override for yLowValue, used in aggregation mode */ private handleDatumPoint; private pushGapMarker; private hasInvalidDatumsInRange; /** * Creates or updates marker datum for a single boundary (high or low). * Supports incremental updates by reusing existing marker data objects when possible. */ private upsertMarkerDatum; protected populateNodeData(ctx: RangeAreaSeriesNodeDatumContext): void; protected finalizeNodeData(ctx: RangeAreaSeriesNodeDatumContext): void; protected initializeResult(ctx: RangeAreaSeriesNodeDatumContext): RangeAreaContext; protected assembleResult(ctx: RangeAreaSeriesNodeDatumContext, result: RangeAreaContext): RangeAreaContext; private getLowOrHighMarkerStyles; private createLabelData; protected isPathOrSelectionDirty(): boolean; protected strokewidthChange(): boolean; protected updatePathNodes(opts: { paths: _ModuleSupport.SegmentedPath[]; visible: boolean; animationEnabled: boolean; }): void; protected updatePaths(opts: { contextData: RangeAreaContext; paths: _ModuleSupport.Path[]; }): void; private updateAreaPaths; private updateFillPath; private updateStrokePath; protected resetDatumAnimation(data: _ModuleSupport.CartesianAnimationData, RangeAreaLabelDatum, RangeAreaContext>): void; protected updateDatumSelection(opts: { nodeData: RangeAreaMarkerDatum[]; datumSelection: _ModuleSupport.Selection>; }): _ModuleSupport.Selection>; private static readonly keyByItemType; private static readonly computeNoStylerMarkerStyle; private static readonly computeStylerStyle; private static readonly applyStylerDatum; protected updateDatumStyles({ datumSelection, isHighlight, }: { datumSelection: _ModuleSupport.Selection>; isHighlight: boolean; }): void; protected updateDatumNodes(opts: { datumSelection: _ModuleSupport.Selection>; isHighlight: boolean; drawingMode: AgDrawingMode; }): void; protected updateLabelSelection(opts: { labelData: RangeAreaLabelDatum[]; labelSelection: _ModuleSupport.Selection>; }): _ModuleSupport.Selection>; protected updateLabelNodes(opts: { labelSelection: _ModuleSupport.Selection>; isHighlight?: boolean; }): void; getLabelData(): RangeAreaLabelDatum[]; getLabelDefaults(): SeriesLabelDefaults; updatePlacedLabelData(labelData: PlacedLabel[]): void; /** * Maps the engine's label box onto the render anchor: horizontal centre for the centred text, top * edge inset for the `top` baseline so the drawn box sits centred within the reserved box. Both * placement offsets are invariant across the labels, so they are resolved once per pass. */ private placedLabelMapper; protected getHighlightLabelData(_labelData: RangeAreaLabelDatum[], highlightedItem: RangeAreaMarkerDatum): RangeAreaLabelDatum[] | undefined; protected getHighlightData(nodeData: RangeAreaMarkerDatum[], highlightedItem: RangeAreaMarkerDatum): RangeAreaMarkerDatum[] | undefined; private getStyle; private getStylerMarkerOptions; private getStylerCouple; private makeStylerParams; private makeItemStylerParams; getTooltipContent(datumIndex: number, removeThisDatum: RangeAreaMarkerDatum | undefined): _ModuleSupport.TooltipContent | undefined; private legendItemSymbol; getLegendData(legendType: _ModuleSupport.ChartLegendType): _ModuleSupport.CategoryLegendDatum[]; protected isLabelEnabled(): boolean; protected nodeFactory(): _ModuleSupport.Marker; animateEmptyUpdateReady(animationData: _ModuleSupport.CartesianAnimationData, RangeAreaLabelDatum, RangeAreaContext>): void; protected animateReadyResize(animationData: _ModuleSupport.CartesianAnimationData, RangeAreaLabelDatum, RangeAreaContext>): void; animateWaitingUpdateReady(animationData: _ModuleSupport.CartesianAnimationData, RangeAreaLabelDatum, RangeAreaContext>): void; getFormattedMarkerStyle(datum: RangeAreaMarkerDatum): Omit & import("ag-charts-core").FillStrokeMorph & { size: number; opacity?: number; }; getMarkerStyle(marker: _ModuleSupport.SeriesMarker, datum: GetMarkerStyleArg<1>, params?: TParams, opts?: GetMarkerStyleArg<3>, defaultOverrideStyle?: GetMarkerStyleArg<4>, inheritedStyle?: GetMarkerStyleArg<5>): ReturnType<_ModuleSupport.CartesianSeries['getMarkerStyle']>; protected computeFocusBounds(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.BBox | undefined; protected isDatumEnabled(nodeData: RangeAreaMarkerDatum[], datumIndex: number): boolean; protected hasItemStylers(): boolean; } export {};