import type { Datum } from "../shared/datumTypes";
import * as React from "react";
import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
import type { BaseChartProps } from "../shared/types";
import { type TooltipProp } from "../../Tooltip/Tooltip";
import type { RealtimeFrameHandle } from "../../realtime/types";
export interface GaugeThreshold {
    /** Upper bound of this zone (value, not percentage) */
    value: number;
    /** Color for this threshold zone */
    color: string;
    /** Optional label for the zone */
    label?: string;
}
export interface GaugeChartProps extends BaseChartProps {
    /** Current gauge value */
    value: number;
    /** Minimum scale value (default 0) */
    min?: number;
    /** Maximum scale value (default 100) */
    max?: number;
    /** Threshold zones — ordered list of { value, color, label? }. Last threshold's value should equal max. */
    thresholds?: GaugeThreshold[];
    /** Color of the value arc when no thresholds defined (default: theme primary) */
    color?: string;
    /** Background arc color (default: var(--semiotic-grid, #e0e0e0)) */
    backgroundColor?: string;
    /** Arc thickness as fraction of radius (0–1, default 0.3) */
    arcWidth?: number;
    /** Show needle indicator (default true) */
    showNeedle?: boolean;
    /** Needle color (default: var(--semiotic-text, #333)) */
    needleColor?: string;
    /** Center content — ReactNode rendered at the gauge center. If not provided, shows the value. */
    centerContent?: React.ReactNode | ((value: number, min: number, max: number) => React.ReactNode);
    /** Format function for the default center value label */
    valueFormat?: (value: number) => string;
    /** Show scale tick labels at min, max, and threshold boundaries (default true) */
    showScaleLabels?: boolean;
    /** Arc sweep angle in degrees (default 240 — leaves a 120° gap at the bottom) */
    sweep?: number;
    /** When false, all threshold zones render at full color and only the needle indicates value. Default true (zones fill up to value). */
    fillZones?: boolean;
    /** Enable tooltip on arc segments */
    tooltip?: TooltipProp;
    /** Annotations — supports threshold markers via standard annotation system */
    annotations?: Datum[];
    /** Enable hover interaction (default true) */
    enableHover?: boolean;
    /** frameProps escape hatch */
    frameProps?: Partial<Omit<StreamOrdinalFrameProps, "data" | "size">>;
}
export declare const GaugeChart: {
    (props: GaugeChartProps & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
    displayName?: string;
};
