import type { PlainObject } from 'ag-charts-core';
import { IrregularBandScale } from '../../scale/irregularBandScale';
export type SeriesGrouping = {
    groupIndex: number;
    groupCount: number;
    stackIndex: number;
    stackCount: number;
};
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;
    registerSeries({ internalId, seriesGrouping, visible, width, type }: SeriesLike): void;
    updateSeries({ internalId, seriesGrouping, visible, width, type }: SeriesLike): void;
    deregisterSeries({ internalId, type }: SeriesIdLike): void;
    getVisiblePeerGroupIndex({ type, seriesGrouping, visible }: SeriesLike): SeriesGroupingResult;
    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, invalidData: Map<string, boolean[]>, missingData: Map<string, boolean[]>, datumIndex: number): number;
}
export {};
