import { type TextAlign, type VerticalAlign, _ModuleSupport } from 'ag-charts-community';
import { DatumUnion } from '../gauge-util/datumUnion';
import { type UnknownGaugeNodeDatum } from '../gauge-util/properties';
import { type RadialGaugeLabelDatum, type RadialGaugeNodeDatum, type RadialGaugeNodeDatumIndex, RadialGaugeSeriesProperties, type RadialGaugeTargetDatum } from './radialGaugeSeriesProperties';
interface RadialGaugeNeedleDatum {
    centerX: number;
    centerY: number;
    radius: number;
    angle: number;
    series: RadialGaugeSeries;
}
interface RadialGaugeNodeDataContext extends _ModuleSupport.SeriesNodeDataContext<0, RadialGaugeNodeDatum, RadialGaugeLabelDatum> {
    needleData: RadialGaugeNeedleDatum[];
    targetData: RadialGaugeTargetDatum[];
    scaleData: RadialGaugeNodeDatum[];
}
export declare class RadialGaugeSeries extends _ModuleSupport.Series<RadialGaugeNodeDatumIndex, RadialGaugeNodeDatum, RadialGaugeSeriesProperties, RadialGaugeLabelDatum, RadialGaugeNodeDataContext> implements _ModuleSupport.RadialGaugeSeries {
    static readonly className = "RadialGaugeSeries";
    static readonly type: "radial-gauge";
    canHaveAxes: boolean;
    properties: RadialGaugeSeriesProperties;
    centerX: number;
    centerY: number;
    radius: number;
    textAlign: TextAlign;
    verticalAlign: VerticalAlign;
    get maximumRadius(): number | undefined;
    get minimumRadius(): number | undefined;
    private readonly scaleGroup;
    private readonly itemGroup;
    private readonly itemNeedleGroup;
    private readonly itemTargetGroup;
    private readonly itemTargetLabelGroup;
    private readonly itemLabelGroup;
    private readonly highlightTargetGroup;
    private scaleSelection;
    private datumSelection;
    private needleSelection;
    targetSelection: _ModuleSupport.Selection<_ModuleSupport.Marker, RadialGaugeTargetDatum>;
    private targetLabelSelection;
    private labelSelection;
    private highlightTargetSelection;
    datumUnion: DatumUnion<_ModuleSupport.Sector, RadialGaugeNodeDatum>;
    private readonly animationState;
    contextNodeData?: RadialGaugeNodeDataContext;
    constructor(moduleCtx: _ModuleSupport.ModuleContext);
    get hasData(): boolean;
    private nodeFactory;
    private markerFactory;
    processData(): void;
    private formatLabel;
    private createConicGradient;
    private getTargets;
    private getTargetRadius;
    private getTargetLabel;
    createNodeData(): {
        itemId: string;
        nodeData: RadialGaugeNodeDatum[];
        needleData: RadialGaugeNeedleDatum[];
        targetData: RadialGaugeTargetDatum[];
        labelData: RadialGaugeLabelDatum[];
        scaleData: RadialGaugeNodeDatum[];
    } | undefined;
    updateSelections(resize: boolean): void;
    private highlightDatum;
    update({ seriesRect }: {
        seriesRect?: _ModuleSupport.BBox;
    }): void;
    private updateDatumSelection;
    private updateDatumNodes;
    private updateScaleSelection;
    private updateScaleNodes;
    private updateNeedleSelection;
    private updateNeedleNodes;
    private updateTargetSelection;
    private updateTargetNodes;
    private updateTargetLabelSelection;
    private updateTargetLabelNodes;
    private updateLabelSelection;
    private updateLabelNodes;
    labelsHaveExplicitText(): boolean;
    formatLabelText(datum?: {
        label: number | undefined;
        secondaryLabel: number | undefined;
    }): void;
    protected resetAllAnimation(): void;
    resetAnimation(phase: _ModuleSupport.ChartAnimationPhase): void;
    private animateLabelText;
    animateEmptyUpdateReady(): void;
    animateWaitingUpdateReady(): void;
    protected animateReadyResize(): void;
    getSeriesDomain(): number[];
    getSeriesRange(_direction: _ModuleSupport.ChartAxisDirection, _visibleRange: [any, any]): [number, number];
    getLegendData(): _ModuleSupport.ChartLegendDatum<any>[];
    getTooltipContent(nodeDatum: UnknownGaugeNodeDatum): _ModuleSupport.TooltipContent | undefined;
    pickNodeClosestDatum(point: _ModuleSupport.Point): _ModuleSupport.SeriesNodePickMatch | undefined;
    pickFocus(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.PickFocusOutputs | undefined;
    getCaptionText(): string;
}
export {};
