import { type AgActiveItemState, type AgLinearGaugeOptions, _ModuleSupport } from 'ag-charts-community';
import { type ChartAnimationPhase, type DynamicContext, type Point } from 'ag-charts-core';
import type { AgNumericValue } from 'ag-charts-types';
import { DatumUnion } from '../gauge-util/datumUnion';
import { type LinearGaugeLabelDatum, LinearGaugeLabelProperties, type LinearGaugeNodeDatum, LinearGaugeSeriesProperties, type LinearGaugeTargetDatum } from './linearGaugeSeriesProperties';
type SeriesNodeDatum = _ModuleSupport.SeriesNodeDatum;
interface LinearGaugeNodeDataContext extends _ModuleSupport.SeriesNodeDataContext<LinearGaugeNodeDatum, LinearGaugeLabelDatum> {
    tickData: _ModuleSupport.TickDatum[];
    targetData: LinearGaugeTargetDatum[];
    scaleData: LinearGaugeNodeDatum[];
}
export declare class LinearGaugeSeries extends _ModuleSupport.Series<LinearGaugeNodeDatum, AgLinearGaugeOptions, LinearGaugeSeriesProperties, LinearGaugeLabelDatum, LinearGaugeNodeDataContext> {
    static readonly className = "LinearGaugeSeries";
    static readonly type: "linear-gauge";
    properties: LinearGaugeSeriesProperties;
    private seriesRect;
    private gaugeRect;
    scale: _ModuleSupport.LinearScale;
    get range(): [number, number];
    originX: number;
    originY: number;
    get horizontal(): boolean;
    private readonly scaleGroup;
    private readonly itemGroup;
    private readonly itemTargetGroup;
    private readonly itemTargetLabelGroup;
    private readonly itemLabelGroup;
    private readonly highlightTargetGroup;
    private readonly tickGroup;
    private scaleSelection;
    private datumSelection;
    targetSelection: _ModuleSupport.Selection<any, _ModuleSupport.Marker<LinearGaugeTargetDatum>>;
    private targetLabelSelection;
    private labelSelection;
    private highlightTargetSelection;
    private tickSelection;
    datumUnion: DatumUnion<_ModuleSupport.Rect<LinearGaugeNodeDatum>>;
    private readonly animationState;
    contextNodeData?: LinearGaugeNodeDataContext;
    constructor(moduleCtx: DynamicContext<_ModuleSupport.ChartRegistry>);
    get hasData(): boolean;
    private nodeFactory;
    private markerFactory;
    processData(): void;
    formatLabel(value: AgNumericValue): string;
    protected getShapeFillBBox(): _ModuleSupport.ShapeFillBBox;
    private getTargets;
    private getTargetPoint;
    private getTargetLabel;
    labelDatum(label: LinearGaugeLabelProperties, value: AgNumericValue): LinearGaugeLabelDatum;
    private verticalLabelInset;
    private horizontalLabelInset;
    private tickFormatter;
    createNodeData(): {
        itemId: string;
        nodeData: LinearGaugeNodeDatum[];
        tickData: _ModuleSupport.TickDatum[];
        targetData: LinearGaugeTargetDatum[];
        labelData: LinearGaugeLabelDatum[];
        scaleData: LinearGaugeNodeDatum[];
    };
    findNodeDatum(itemId: AgActiveItemState['itemId']): SeriesNodeDatum | undefined;
    updateSelections(resize: boolean): void;
    private highlightDatum;
    update({ seriesRect }: {
        seriesRect?: _ModuleSupport.BBox;
    }): void;
    private updateDatumSelection;
    private updateDatumNodes;
    private updateScaleSelection;
    private updateScaleNodes;
    private updateTargetSelection;
    private updateTargetNodes;
    private getTargetStyle;
    private updateTargetLabelSelection;
    private updateTargetLabelNodes;
    private updateTickSelection;
    private updateTickNodes;
    private updateLabelSelection;
    private updateLabelNodes;
    labelsHaveExplicitText(): boolean;
    formatLabelText(datum?: {
        label: AgNumericValue;
    }): void;
    protected resetAllAnimation(): void;
    resetAnimation(phase: ChartAnimationPhase): void;
    private animateLabelText;
    animateEmptyUpdateReady(): void;
    animateWaitingUpdateReady(): void;
    protected animateReadyResize(): void;
    getSeriesDomain(): {
        domain: number[];
    };
    dataCount(): number;
    getSeriesRange(): [number, number];
    getLegendData(): _ModuleSupport.ChartLegendDatum<_ModuleSupport.ChartLegendType>[];
    getTooltipContent(datumIndex: _ModuleSupport.DatumIndex | undefined): _ModuleSupport.TooltipContent | undefined;
    pickNodeClosestDatum(point: Point): _ModuleSupport.SeriesNodePickMatch | undefined;
    pickFocus(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.PickFocusOutputs | undefined;
    getCaptionText(): string;
    getCategoryValue(_datumIndex: _ModuleSupport.DatumIndex): void;
    datumIndexForCategoryValue(_categoryValue: any): _ModuleSupport.DatumIndex | undefined;
    protected hasItemStylers(): boolean;
}
export {};
