import { type AgBaseRadarSeriesOptions, type AgDrawingMode, type AgRadarSeriesStyle, type AgSeriesMarkerStyle, type ContextDefault, type DatumDefault, _ModuleSupport } from 'ag-charts-community';
import { type CallbackParam, ChartAxisDirection, type DomainWithMetadata, type Point } from 'ag-charts-core';
import { type RadarNodeDatum, RadarSeriesProperties } from './radarSeriesProperties';
export interface RadarPathPoint {
    x: number;
    y: number;
    moveTo: boolean;
    radius?: number;
    startAngle?: number;
    endAngle?: number;
    arc?: boolean;
}
interface RadarSeriesNodeDataContext extends _ModuleSupport.SeriesNodeDataContext<number, RadarNodeDatum> {
    styles: _ModuleSupport.SeriesNodeStyleContext<AgSeriesMarkerStyle>;
}
type StylerResult<TStyle extends AgRadarSeriesStyle> = TStyle & {
    marker?: {
        enabled?: boolean;
    };
};
type BaseRadarSeries = RadarSeries<AgRadarSeriesStyle, AgBaseRadarSeriesOptions<DatumDefault, ContextDefault, AgRadarSeriesStyle>, RadarSeriesProperties<AgRadarSeriesStyle, AgBaseRadarSeriesOptions<DatumDefault, ContextDefault, AgRadarSeriesStyle>>>;
export type ResolvedRadarStyle<TStyle extends AgRadarSeriesStyle> = {
    [K in keyof TStyle]-?: Exclude<TStyle[K], undefined>;
} & {
    marker: Required<AgSeriesMarkerStyle> & {
        enabled: boolean;
    };
};
declare class RadarSeriesNodeEvent<TEvent extends string = _ModuleSupport.SeriesNodeEventTypes> extends _ModuleSupport.SeriesNodeEvent<RadarNodeDatum, TEvent> {
    readonly angleKey?: string;
    readonly radiusKey?: string;
    constructor(type: TEvent, nativeEvent: Event, datum: RadarNodeDatum, series: BaseRadarSeries);
}
export declare abstract class RadarSeries<TStyle extends AgRadarSeriesStyle, TOpts extends AgBaseRadarSeriesOptions<DatumDefault, ContextDefault, TStyle>, TProps extends RadarSeriesProperties<TStyle, TOpts>> extends _ModuleSupport.PolarSeries<RadarNodeDatum, TOpts, TProps, _ModuleSupport.Marker> {
    static readonly className: string;
    protected readonly NodeEvent: typeof RadarSeriesNodeEvent;
    private readonly lineGroup;
    protected lineSelection: _ModuleSupport.Selection<_ModuleSupport.Path, boolean>;
    protected resetInvalidToZero: boolean;
    contextNodeData?: RadarSeriesNodeDataContext;
    constructor(moduleCtx: _ModuleSupport.ModuleContext);
    renderToOffscreenCanvas(): boolean;
    protected nodeFactory(): _ModuleSupport.Marker;
    getSeriesDomain(direction: ChartAxisDirection): DomainWithMetadata<any>;
    processData(dataController: _ModuleSupport.DataController): Promise<void>;
    protected circleCache: {
        r: number;
        cx: number;
        cy: number;
    };
    protected didCircleChange(): boolean;
    protected getAxisInnerRadius(): number;
    maybeRefreshNodeData(): void;
    createNodeData(): {
        itemId: string;
        nodeData: RadarNodeDatum[];
        labelData: RadarNodeDatum[];
        styles: Record<_ModuleSupport.HighlightState, AgSeriesMarkerStyle>;
    } | undefined;
    update({ seriesRect }: {
        seriesRect?: _ModuleSupport.BBox;
    }): void;
    protected updatePathSelections(): void;
    protected updateMarkerSelection(): void;
    protected updateHighlightSelection(): void;
    protected getMarkerFill(highlightedStyle?: _ModuleSupport.SeriesItemHighlightStyle): string | import("ag-charts-community").AgGradientColor | import("ag-charts-community").AgPatternColor | import("ag-charts-community").AgImageFill | (string & import("ag-charts-community").AgGradientColor) | (string & import("ag-charts-community").AgPatternColor) | (string & import("ag-charts-community").AgImageFill) | (import("ag-charts-community").AgGradientColor & string) | (import("ag-charts-community").AgPatternColor & string) | (import("ag-charts-community").AgImageFill & string);
    protected getDatumStylerProperties(datum: any): {
        seriesId: string;
        datum: any;
        angleKey: string;
        radiusKey: string;
    };
    protected updateDatumStyles(selection: _ModuleSupport.Selection<_ModuleSupport.Marker, RadarNodeDatum>, isHighlight: boolean): void;
    protected updateMarkers(selection: _ModuleSupport.Selection<_ModuleSupport.Marker, RadarNodeDatum>, isHighlight: boolean, drawingMode: AgDrawingMode): void;
    protected updateLabels(): void;
    getTooltipContent(datumIndex: number): _ModuleSupport.TooltipContent | undefined;
    private legendItemSymbol;
    getLegendData(legendType: _ModuleSupport.ChartLegendType): _ModuleSupport.CategoryLegendDatum[];
    protected pickNodeClosestDatum(hitPoint: Point): _ModuleSupport.SeriesNodePickMatch | undefined;
    computeLabelsBBox(): _ModuleSupport.BBox | null;
    protected getLineNode(): _ModuleSupport.Path<any> | undefined;
    protected beforePathAnimation(): void;
    protected getPathNodesStyle(): import("ag-charts-core").Intersection<Exclude<ResolvedRadarStyle<TStyle>, false | null | undefined> | Exclude<Partial<TOpts & {
        fill: import("ag-charts-community").AgColorType;
        fillOpacity: number;
        stroke: string;
        strokeWidth: number;
        strokeOpacity: number;
        lineDash: number[];
        lineDashOffset: number;
        opacity: number;
    }>, false | null | undefined>>;
    protected abstract updatePathNodes(): void;
    protected getLinePoints(): RadarPathPoint[];
    protected animateSinglePath(pathNode: _ModuleSupport.Path, points: RadarPathPoint[], ratio: number): void;
    protected animatePaths(ratio: number): void;
    animateEmptyUpdateReady(): void;
    animateWaitingUpdateReady(data: _ModuleSupport.PolarAnimationData): void;
    animateReadyResize(data: _ModuleSupport.PolarAnimationData): void;
    protected resetPaths(): ResolvedRadarStyle<TStyle> | undefined;
    protected abstract makeStylerParams(highlightStateEnum?: _ModuleSupport.HighlightState): CallbackParam<NonNullable<TOpts['styler']>>;
    protected getStylerResult(stylerResult: StylerResult<TStyle>, highlightState?: _ModuleSupport.HighlightState): StylerResult<TStyle>;
    abstract getStyle(highlightState?: _ModuleSupport.HighlightState): ResolvedRadarStyle<TStyle>;
    getFormattedMarkerStyle(datum: RadarNodeDatum): AgSeriesMarkerStyle & {
        size: number;
    };
    protected computeFocusBounds(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.BBox | undefined;
    protected hasItemStylers(): boolean;
}
export {};
