import { LitElement, PropertyValues } from 'lit';
import { AngleAdvice } from '../watch/advice.js';
import { RotType, RotPosition } from '../watch/watch.js';
import { InstrumentState, Priority } from '../types.js';
import '../watch/watch.js';
export { RotType, RotPosition };
export declare enum CompassSectorPriorityElement {
    hdg = "hdg",
    cog = "cog",
    rot = "rot"
}
/**
 * `<obc-compass-sector>` — Curved compass strip that auto‑scales to keep HDG and COG visible.
 *
 * Renders a fixed 120° arc of a triple‑ring compass face. The visible
 * compass range (field of view) adjusts automatically so that both the
 * heading (HDG) and course‑over‑ground (COG) arrows are always in view.
 * This is the radial equivalent of `<obc-compass-flat>`: the arc shape
 * never changes — only the scale (compass‑degrees per arc‑degree) changes.
 *
 * ## Features
 *
 * - **Fixed 120° arc**: The watch face is always a 120° sector (±60° from
 *   center), identical in shape to `<obc-rot-sector>`.
 * - **FOV auto‑scaling**: The field of view widens when the HDG–COG
 *   angular difference grows, compressing more compass degrees into the
 *   fixed arc. Tickmark density adjusts automatically.
 * - **HDG / COG arrows**: Solid (HDG) arrow is always at the arc center.
 *   Hollow (COG) arrow is positioned proportionally within the arc.
 * - **North arrow**: A gray triangle in the outer scale band indicates
 *   north when it falls within the visible FOV.
 * - **Heading setpoint**: Optional setpoint marker with auto at‑setpoint
 *   detection and confirm animation, positioned at the mapped arc angle.
 * - **Advice zones**: Pass `headingAdvices` to render caution/alert arcs,
 *   mapped into the scaled arc.
 * - **Rate of turn**: Animated ROT indicator (dots or bar) spanning from
 *   HDG to the mapped COG position, clipped to the arc.
 * - **Zoom to fit**: When `zoomToFitArc` is `true`, the fixed 120° arc is
 *   enlarged to fill the available space.
 *
 * ## Usage Guidelines
 *
 * - Set `heading` and `courseOverGround` to sensor values in degrees.
 * - Adjust `minFOV` to control the minimum zoom level (default 30°).
 * - Enable `zoomToFitArc` to enlarge the arc to fill the viewport.
 * - For a full‑circle compass, use `<obc-compass>` instead.
 *
 * @fires None
 */
export declare class ObcCompassSector extends LitElement {
    heading: number;
    courseOverGround: number;
    headingSetpoint: number | null;
    newHeadingSetpoint: number | undefined;
    atHeadingSetpoint: boolean;
    headingSetpointAtZeroDeadband: number;
    headingSetpointOverride: boolean;
    autoAtHeadingSetpoint: boolean;
    autoAtHeadingSetpointDeadband: number;
    animateSetpoint: boolean;
    touching: boolean;
    headingAdvices: AngleAdvice[];
    minFOV: number;
    rotType: RotType | undefined;
    rotPosition: RotPosition;
    rotationsPerMinute: number;
    rotMaxValue: number;
    state: InstrumentState;
    priority: Priority;
    priorityElements: CompassSectorPriorityElement[];
    tickmarksInside: boolean;
    zoomToFitArc: boolean;
    private _headingSp;
    private _halfFOV;
    private _arcHalfExtent;
    private _scale;
    private _radiusOffset;
    private _cachedViewBox;
    private _cachedArcFrame;
    private _cachedAreas;
    private _cachedTickmarks;
    private _cachedAdvices;
    willUpdate(changed: PropertyValues): void;
    disconnectedCallback(): void;
    private _mapAngle;
    private _buildTickmarks;
    private _computeViewBox;
    private _renderNorthArrow;
    private _angleInRange;
    private _buildAdvices;
    private get _rotEndAngle();
    private priorityFor;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-compass-sector': ObcCompassSector;
    }
}
//# sourceMappingURL=compass-sector.d.ts.map