import { LitElement, nothing } from 'lit';
import { TickmarkStyle } from '../watch/tickmark.js';
import { InstrumentState, Priority } from '../types.js';
import { AngleAdvice } from '../watch/advice.js';
import '../watch/watch.js';
export declare enum ObcRudderVariant {
    Bar = "bar",
    Needle = "needle"
}
declare const ObcRudder_base: (new (...args: any[]) => import('../../svghelpers/setpoint-mixin.js').SetpointMixinInterface) & typeof LitElement;
/**
 * `<obc-rudder>` — Half-circle rudder angle indicator.
 *
 * `ObcRudder` renders a semicircular gauge (40% top-clipped) that displays
 * the current rudder angle with a configurable bar or needle variant. The
 * gauge maps rudder angles to the lower arc of an `<obc-watch>` and overlays
 * a domain-specific needle when the `needle` variant is selected. It inherits
 * a full setpoint property bundle from {@link SetpointMixin}, including
 * auto at-setpoint detection, dual-marker adjustment preview, and deadband
 * tuning.
 *
 * ## Features
 *
 * - **Two display variants**: `bar` (filled arc from zero, default) and
 *   `needle` (rotating pointer with silhouette stroke) via the `variant`
 *   property.
 * - **Symmetric range**: The gauge spans ±`maxAngle` around the 180° center
 *   (zero position at bottom).
 * - **State-aware colors**: Bar and needle colors adapt to the current
 *   `InstrumentState` (active, loading, off) and `Priority` (enhanced, regular).
 * - **Setpoint via mixin**: `setpoint`, `newSetpoint`, `touching`,
 *   `autoAtSetpointDeadband`, `setpointOverride`, and all other setpoint
 *   properties are provided by `SetpointMixin` and forwarded to `<obc-watch>`.
 * - **Advice zones**: Pass an array of `AngleAdvice` objects to render
 *   caution/alert arcs; triggered state is derived from whether the setpoint
 *   falls inside the advice range.
 *
 * ## Usage Guidelines
 *
 * - Set `maxAngle` to define the symmetric ± range (default: 90°).
 * - Use `priority` to switch between regular and enhanced color palettes
 *   (default: `Priority.regular`).
 * - Use `state` to control the instrument color palette.
 * - Enable `showLabels` to show numeric angle labels at tickmarks.
 * - Enable `tickmarksInside` to render tickmarks inside the ring.
 * - Choose `variant` to switch between bar and needle display.
 *
 * ## Best Practices
 *
 * - Prefer `SetpointMixin` properties (`setpoint`, `touching`, etc.) over
 *   any legacy aliases — the mixin is the single source of truth.
 * - The top 40% is always clipped; overlay SVGs use the matching clipped
 *   viewBox (`-224 -44.8 448 268.8`) for layer alignment.
 *
 * ## Example
 *
 * ```html
 * <obc-rudder
 *   angle="12"
 *   maxAngle="45"
 *   variant="needle"
 *   state="in-command"
 *   showLabels
 *   setpoint="15"
 * ></obc-rudder>
 * ```
 *
 * @element obc-rudder
 */
export declare class ObcRudder extends ObcRudder_base {
    angle: number;
    variant: ObcRudderVariant;
    maxAngle: number;
    showLabels: boolean;
    /** Whether to render tickmarks inside the ring. */
    tickmarksInside: boolean;
    state: InstrumentState;
    priority: Priority;
    tickmarkStyle: TickmarkStyle;
    advices: AngleAdvice[];
    zoomToFitArc: boolean;
    private _radiusOffset;
    private _arcFrame;
    private get _needleTransform();
    getAngle(value: number): number;
    get barColor(): "var(--instrument-regular-secondary-color)" | "var(--instrument-enhanced-secondary-color)" | "var(--instrument-frame-tertiary-color)" | "var(--instrument-regular-tertiary-color)" | "var(--instrument-enhanced-tertiary-color)";
    renderNeedle(): import('lit-html').TemplateResult<2> | typeof nothing;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-rudder': ObcRudder;
    }
}
export {};
//# sourceMappingURL=rudder.d.ts.map