import type { Datum } from "./datumTypes";
export interface GaugeThresholdLike {
    value: number;
    color: string;
    label?: string;
}
export interface GaugeGradientStop {
    offset: number;
    color: string;
}
export interface GaugeGradientFill {
    colorStops: GaugeGradientStop[];
}
export interface GaugeArcDatum extends Datum {
    category: string;
    value: number;
    _zone?: string;
    _isFill: boolean;
    _pctStart?: number;
    _pct?: number;
    _roundedEnds?: {
        start?: boolean;
        end?: boolean;
    };
    _nonInteractive?: boolean;
    /** Pre-computed gradient colors for the rendered band. Each entry is
     *  the color for one equal-angle slice across the band's full angular
     *  span. The wedge renderer reads this and paints the slices itself
     *  inside a clip-mask shaped like the wedge's rounded outline. */
    _gradientBand?: {
        colors: string[];
    };
}
export interface GaugeArcModel {
    gaugeData: GaugeArcDatum[];
    pieceStyle: (d: Datum, category?: string) => {
        fill: string;
        opacity?: number;
    };
    gaugeAnnotations: Datum[];
}
interface BuildGaugeArcModelOptions {
    min: number;
    max: number;
    value: number;
    thresholds?: GaugeThresholdLike[];
    fillColor?: string;
    backgroundColor: string;
    fillZones: boolean;
    showScaleLabels: boolean;
    gradientFill?: GaugeGradientFill;
    gradientSteps?: number;
}
/**
 * Build the synthetic wedge data model used by GaugeChart.
 *
 * When `gradientFill` is provided, the visible fill is split into many thin
 * slices and sampled against the supplied color stops so color changes along
 * the arc length rather than by threshold zone.
 */
export declare function buildGaugeArcModel(options: BuildGaugeArcModelOptions): GaugeArcModel;
export {};
