import { LitElement } from 'lit';
import { AdviceType } from '../watch/advice.js';
import { InstrumentState, Priority } from '../types.js';
import { TickmarkStyle } from '../watch/tickmark.js';
import '../../building-blocks/instrument-radial/instrument-radial.js';
export declare enum ObcGaugeRadialType {
    filled = "filled",
    bar = "bar",
    needle = "needle"
}
export interface GaugeRadialAdvice {
    minValue: number;
    maxValue: number;
    type: AdviceType;
    hinted: boolean;
}
declare const ObcGaugeRadial_base: (new (...args: any[]) => import('../../svghelpers/setpoint-mixin.js').SetpointMixinInterface) & typeof LitElement;
/**
 * `<obc-gauge-radial>` — Configurable radial gauge for generic numeric values.
 *
 * `ObcGaugeRadial` is a thin wrapper around `<obc-instrument-radial>` that adds
 * domain-independent value-to-angle mapping with automatic range handling for
 * both positive-only and bipolar (negative-to-positive) scales. It inherits a
 * full setpoint property bundle from {@link SetpointMixin}, including
 * auto at-setpoint detection, dual-marker adjustment preview, and deadband
 * tuning — no manual wiring required.
 *
 * ## Features
 *
 * - **Three display types**: `filled` (solid arc), `bar` (thinner arc), and
 *   `needle` (pointer indicator) via the `type` property.
 * - **Bipolar range support**: When `minValue < 0` the gauge switches to a
 *   ±135° layout centered at 12 o'clock; otherwise it uses a 270° sweep.
 * - **Setpoint via mixin**: `setpoint`, `newSetpoint`, `touching`,
 *   `autoAtSetpointDeadband`, `setpointOverride`, and all other setpoint
 *   properties are provided by `SetpointMixin` and forwarded to the inner
 *   `<obc-instrument-radial>`.
 * - **Advice zones**: Pass an array of {@link GaugeRadialAdvice} objects to
 *   render caution/alert arcs on the gauge.
 *
 * ## Usage Guidelines
 *
 * - Set `minValue` / `maxValue` to define the scale range.
 * - Use `priority` to switch between regular and enhanced color palettes.
 * - Provide `primaryTickmarkInterval` and `secondaryTickmarkInterval` to
 *   control tickmark density.
 * - Enable `showLabels` to show numeric labels at primary tickmarks.
 *
 * ## Best Practices
 *
 * - Prefer `SetpointMixin` properties (`setpoint`, `touching`, etc.) over
 *   any legacy aliases — the mixin is the single source of truth.
 * - Keep domain-specific logic (units, formatting) in the parent view; this
 *   component is intentionally unit-agnostic.
 *
 * ## Example
 *
 * ```html
 * <obc-gauge-radial
 *   value="42"
 *   minValue="0"
 *   maxValue="100"
 *   type="filled"
 *   enhanced
 *   showLabels
 *   primaryTickmarkInterval="25"
 *   secondaryTickmarkInterval="5"
 *   setpoint="60"
 * ></obc-gauge-radial>
 * ```
 *
 * @element obc-gauge-radial
 * @typedef {import('./gauge-radial.js').GaugeRadialAdvice} GaugeRadialAdvice
 */
export declare class ObcGaugeRadial extends ObcGaugeRadial_base {
    value: number;
    maxValue: number;
    minValue: number;
    showLabels: boolean;
    primaryTickmarkInterval: number;
    secondaryTickmarkInterval: number;
    /**
     * Interval for tertiary tickmarks in value units.
     * When undefined or <= 0, no tertiary tickmarks are shown.
     */
    tertiaryTickmarkInterval: number | undefined;
    state: InstrumentState;
    priority: Priority;
    type: ObcGaugeRadialType;
    tickmarksInside: boolean;
    tickmarkStyle: TickmarkStyle;
    advices: GaugeRadialAdvice[];
    getAngle(v: number): number;
    render(): import('lit-html').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-gauge-radial': ObcGaugeRadial;
    }
}
export {};
//# sourceMappingURL=gauge-radial.d.ts.map