import type { PlainObject } from 'ag-charts-core'; import type { SeriesGrouping } from '../../module/seriesGrouping'; import { IrregularBandScale } from '../../scale/irregularBandScale'; type SeriesGroupingResult = { visibleGroupCount: number; visibleSameStackCount: number; index: number; }; type SeriesIdLike = { internalId: string; type: string; }; type SeriesLike = SeriesIdLike & { seriesGrouping?: SeriesGrouping; width?: number; visible: boolean; }; export declare class SeriesStateManager { private readonly groups; private readonly groupScales; /** Canonicalised category keys at which each series has a rendered (non-null, valid) bar, keyed by `internalId`. */ private readonly datumValidKeys; registerSeries({ internalId, seriesGrouping, visible, width, type }: SeriesLike): void; updateSeries({ internalId, seriesGrouping, visible, width, type }: SeriesLike): void; deregisterSeries({ internalId, type }: SeriesIdLike): void; /** * Record the category keys at which a series has a rendered bar, so that `getDatumOffset` can close the gaps left * by categories a series does not draw — whether the bar is null/missing in a shared data array or the category is * absent from the series' own per-series `data` array. Keys are canonicalised (dates to epoch numbers) to match by * value across series. Pass `undefined` to clear (e.g. when `skipNullBars` is off). */ setSeriesDatumValidKeys(internalId: string, keys: Iterable | undefined): void; getVisiblePeerGroupIndex({ type, seriesGrouping, visible }: SeriesLike): SeriesGroupingResult; /** Whether a visible series sits at a lower / higher `stackIndex` than this one in the same stack. */ getVisibleStackNeighbours({ type, seriesGrouping }: SeriesLike): { before: boolean; after: boolean; }; updateGroupScale({ type }: SeriesLike, bandwidth: number, axis: PlainObject): void; getGroupScale({ type }: SeriesLike): IrregularBandScale | undefined; getGroupBandWidth(series: SeriesLike): number; getGroupOffset(series: SeriesLike): number; getStackOffset(series: SeriesLike, barWidth: number): number; getDatumOffset(series: SeriesLike, datumKey: unknown): number; } export {};