import { type AgPyramidSeriesOptions, type AgPyramidSeriesStyle, type TextOrSegments, _ModuleSupport } from 'ag-charts-community';
import { type ChartAnimationPhase, type DomainWithMetadata, type DynamicContext, type Point } from 'ag-charts-core';
import { FunnelConnector } from '../funnel/funnelConnector';
import { PyramidProperties } from './pyramidProperties';
type PyramidNodeLabelDatum = Readonly<Point> & {
    readonly text: TextOrSegments;
    readonly textAlign: CanvasTextAlign;
    readonly textBaseline: CanvasTextBaseline;
    readonly visible: boolean;
};
interface PyramidNodeDatum extends _ModuleSupport.DataModelSeriesNodeDatum, Readonly<Point> {
    readonly index: number;
    readonly xValue: string;
    readonly yValue: number;
    readonly top: number;
    readonly right: number;
    readonly bottom: number;
    readonly left: number;
    readonly label: PyramidNodeLabelDatum | undefined;
    style: AgPyramidSeriesStyle;
}
interface PyramidNodeDataContext extends _ModuleSupport.DataModelSeriesNodeDataContext<PyramidNodeDatum, PyramidNodeLabelDatum> {
    stageLabelData: PyramidNodeLabelDatum[] | undefined;
    bounds: _ModuleSupport.BBox;
}
export declare class PyramidSeries extends _ModuleSupport.DataModelSeries<PyramidNodeDatum, AgPyramidSeriesOptions, PyramidProperties, PyramidNodeLabelDatum, PyramidNodeDataContext> {
    static readonly className = "PyramidSeries";
    static readonly type: "pyramid";
    properties: PyramidProperties;
    private readonly itemGroup;
    private readonly itemLabelGroup;
    private readonly stageLabelGroup;
    datumSelection: _ModuleSupport.Selection<PyramidNodeDatum, FunnelConnector<PyramidNodeDatum>>;
    private labelSelection;
    private stageLabelSelection;
    private highlightLabelSelection;
    private highlightDatumSelection;
    contextNodeData?: PyramidNodeDataContext;
    private readonly animationState;
    constructor(moduleCtx: DynamicContext<_ModuleSupport.ChartRegistry>);
    private nodeFactory;
    getNodeData(): PyramidNodeDatum[] | undefined;
    resetAnimation(phase: ChartAnimationPhase): void;
    processData(dataController: _ModuleSupport.DataController): Promise<void>;
    createNodeData(): {
        itemId: string;
        nodeData: PyramidNodeDatum[];
        labelData: PyramidNodeLabelDatum[];
        stageLabelData: PyramidNodeLabelDatum[] | undefined;
        bounds: _ModuleSupport.BBox;
    } | undefined;
    updateSelections(): void;
    update({ seriesRect }: {
        seriesRect?: _ModuleSupport.BBox;
    }): void;
    private updateDatumSelection;
    protected getItemStyle({ datumIndex, datum }: Partial<PyramidNodeDatum>, isHighlight: boolean): Required<AgPyramidSeriesStyle>;
    private makeItemStylerParams;
    private updateDatumStyles;
    private updateDatumNodes;
    private updateLabelSelection;
    private updateStageLabelSelection;
    private updateLabelNodes;
    protected getHighlightLabelData(_labelData: PyramidNodeLabelDatum[], highlightedItem?: PyramidNodeDatum): PyramidNodeLabelDatum[] | undefined;
    protected computeFocusBounds(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.BBox | _ModuleSupport.Path | undefined;
    getTooltipContent(datumIndex: number): _ModuleSupport.TooltipContent | undefined;
    getSeriesDomain(): DomainWithMetadata<any>;
    getSeriesRange(): [number, number];
    pickNodeClosestDatum({ x, y }: Point): _ModuleSupport.SeriesNodePickMatch | undefined;
    private legendItemSymbol;
    getLegendData(legendType: _ModuleSupport.ChartLegendType): _ModuleSupport.CategoryLegendDatum[];
    protected animateReset(): void;
    private animateEmptyUpdateReady;
    protected hasItemStylers(): boolean;
}
export {};
