import { type RichFormatter, _ModuleSupport } from 'ag-charts-community';
import type { InternalAgGradientColor, RequireOptional } from 'ag-charts-core';
import { BaseProperties, PropertiesArray } from 'ag-charts-core';
import type { AgChartLabelFormatterParams, AgGradientColorMode, AgRadialGaugeLabelFormatterParams, AgRadialGaugeMarkerShape, AgRadialGaugeOptions, AgRadialGaugeSeriesStyle, AgRadialGaugeTargetPlacement, AgRadialGaugeTooltipRendererParams, FontStyle, FontWeight } from 'ag-charts-types';
import { GaugeSegmentationProperties } from '../gauge-util/segmentation';
import { AutoSizedLabel, AutoSizedSecondaryLabel } from '../util/autoSizedLabel';
declare const SeriesProperties: typeof _ModuleSupport.SeriesProperties, SeriesLabelProperties: typeof _ModuleSupport.SeriesLabelProperties, Label: typeof _ModuleSupport.Label;
export declare enum NodeDataType {
    Node = 0,
    Target = 1
}
export declare enum LabelType {
    Primary = "primary",
    Secondary = "secondary"
}
export type RadialGaugeNodeDatumIndex = {
    type: NodeDataType.Node;
} | {
    type: NodeDataType.Target;
    index: number;
};
export interface RadialGaugeNodeDatum extends _ModuleSupport.SeriesNodeDatum<RadialGaugeNodeDatumIndex> {
    type: NodeDataType.Node;
    readonly itemId: 'value' | 'scale' | `value-${number}` | `scale-${number}`;
    centerX: number;
    centerY: number;
    innerRadius: number;
    outerRadius: number;
    startAngle: number;
    endAngle: number;
    clipStartAngle: number | undefined;
    clipEndAngle: number | undefined;
    startCornerRadius: number;
    endCornerRadius: number;
    style: AgRadialGaugeSeriesStyle;
}
export interface RadialGaugeTargetDatumLabel {
    offsetX: number;
    offsetY: number;
    fill: string | undefined;
    textAlign: CanvasTextAlign;
    textBaseline: CanvasTextBaseline;
    fontStyle: FontStyle | undefined;
    fontWeight: FontWeight | undefined;
    fontSize: number;
    fontFamily: string;
    lineHeight: number | undefined;
}
export interface RadialGaugeTargetDatum extends _ModuleSupport.SeriesNodeDatum<RadialGaugeNodeDatumIndex> {
    type: NodeDataType.Target;
    readonly itemId: `target-${number}`;
    value: number;
    text: string | undefined;
    centerX: number;
    centerY: number;
    shape: AgRadialGaugeMarkerShape;
    radius: number;
    angle: number;
    size: number;
    rotation: number;
    label: RadialGaugeTargetDatumLabel;
    style: AgRadialGaugeSeriesStyle;
}
export type RadialGaugeLabelDatum = {
    label: LabelType;
    centerX: number;
    centerY: number;
    text: string | undefined;
    value: number;
    fill: string | undefined;
    fontStyle: FontStyle | undefined;
    fontWeight: FontWeight | undefined;
    fontSize: number;
    minimumFontSize: number | undefined;
    fontFamily: string;
    lineHeight: number | undefined;
    formatter: RichFormatter<AgChartLabelFormatterParams<any> & RequireOptional<AgRadialGaugeLabelFormatterParams>> | undefined;
};
declare class RadialGaugeDefaultTargetLabelProperties extends Label<never> {
    spacing: number | undefined;
}
export declare class RadialGaugeTargetProperties extends BaseProperties {
    text: string | undefined;
    value: number | undefined;
    shape: AgRadialGaugeMarkerShape | undefined;
    placement: AgRadialGaugeTargetPlacement | undefined;
    spacing: number | undefined;
    size: number | undefined;
    rotation: number | undefined;
    fill: string | undefined;
    fillOpacity: number | undefined;
    stroke: string | undefined;
    strokeWidth: number | undefined;
    strokeOpacity: number | undefined;
    lineDash: number[] | undefined;
    lineDashOffset: number | undefined;
    readonly label: RadialGaugeDefaultTargetLabelProperties;
    getStyle(): Required<AgRadialGaugeSeriesStyle>;
}
declare class RadialGaugeBarProperties extends BaseProperties {
    enabled: boolean;
    fills: PropertiesArray<_ModuleSupport.StopProperties>;
    fillMode: AgGradientColorMode;
    fill: string | undefined;
    fillOpacity: number;
    stroke: string;
    strokeWidth: number;
    strokeOpacity: number;
    lineDash: number[];
    lineDashOffset: number;
    getStyle(defaultColorRange: string[], scale: _ModuleSupport.LinearScale): RequireOptional<AgRadialGaugeSeriesStyle>;
}
declare class RadialGaugeScaleIntervalProperties extends BaseProperties {
    values?: number[];
    step?: number;
    minSpacing: number;
    maxSpacing: number;
}
declare class RadialGaugeScaleLabelProperties extends SeriesLabelProperties {
}
declare class RadialGaugeScaleProperties extends BaseProperties {
    min: number;
    max: number;
    fills: PropertiesArray<_ModuleSupport.StopProperties>;
    fillMode: AgGradientColorMode;
    fill: string | undefined;
    fillOpacity: number;
    stroke: string;
    strokeWidth: number;
    strokeOpacity: number;
    lineDash: number[];
    lineDashOffset: number;
    defaultFill: string;
    readonly interval: RadialGaugeScaleIntervalProperties;
    readonly label: RadialGaugeScaleLabelProperties;
    getStyle(barEnabled: boolean, defaultColorRange: string[], scale: _ModuleSupport.LinearScale): RequireOptional<AgRadialGaugeSeriesStyle>;
}
declare class RadialGaugeNeedleProperties extends BaseProperties {
    enabled: boolean;
    radiusRatio?: number;
    spacing: number;
    fill: string;
    fillOpacity: number;
    stroke: string;
    strokeWidth: number;
    strokeOpacity: number;
    lineDash: number[];
    lineDashOffset: number;
}
declare class RadialGaugeLabelProperties extends AutoSizedLabel<AgRadialGaugeLabelFormatterParams> {
    text?: string;
}
declare class RadialGaugeSecondaryLabelProperties extends AutoSizedSecondaryLabel<AgRadialGaugeLabelFormatterParams> {
    text?: string;
}
export declare class RadialGaugeSeriesProperties extends SeriesProperties<AgRadialGaugeOptions> {
    value: number;
    startAngle: number;
    endAngle: number;
    readonly segmentation: GaugeSegmentationProperties;
    defaultColorRange: string[];
    targets: PropertiesArray<RadialGaugeTargetProperties>;
    readonly defaultTarget: RadialGaugeTargetProperties;
    outerRadiusRatio: number;
    innerRadiusRatio: number;
    outerRadius: number | undefined;
    innerRadius: number | undefined;
    cornerRadius: number;
    cornerMode: 'container' | 'item';
    spacing: number;
    readonly scale: RadialGaugeScaleProperties;
    readonly bar: RadialGaugeBarProperties;
    readonly needle: RadialGaugeNeedleProperties;
    readonly label: RadialGaugeLabelProperties;
    readonly secondaryLabel: RadialGaugeSecondaryLabelProperties;
    readonly tooltip: _ModuleSupport.SeriesTooltip<Omit<AgRadialGaugeTooltipRendererParams, "context">>;
}
export declare function createConicGradient(fills: _ModuleSupport.StopProperties[], fillMode: AgGradientColorMode, defaultColorRange: string[], scale: _ModuleSupport.LinearScale): InternalAgGradientColor;
export {};
