import { LitElement } from 'lit';
import { Priority } from '../types.js';
import { RotType } from '../rate-of-turn/rot-renderer.js';
import '../watch-flat/watch-flat.js';
export { RotType };
export declare enum CompassFlatPriorityElement {
    hdg = "hdg",
    cog = "cog",
    rot = "rot"
}
export declare enum LabelPosition {
    top = -45,
    bottom = 50
}
export declare enum LabelStyle {
    regular = "var(--instrument-tick-mark-secondary-color)"
}
export interface Label {
    x: number;
    y: LabelPosition;
    text: string;
}
/**
 * `<obc-compass-flat>` — Horizontal strip compass with HDG/COG arrows and optional rate-of-turn indicator.
 *
 * Renders a flat (non-circular) compass strip that scrolls horizontally to
 * display the current heading. A filled HDG arrow sits at the center while a
 * hollow COG arrow is positioned at the angular difference. The strip
 * auto-scales its field of view so both arrows remain visible. Cardinal
 * labels (N, S, E, W) and tickmarks are generated at densities responsive to
 * the strip width.
 *
 * ## Features
 *
 * - **Auto-scaling FOV**: The visible compass range widens to keep both HDG
 *   and COG arrows in view, bounded by `minFOV` / `maxFOV`.
 * - **HDG / COG arrows**: Filled (HDG) and hollow (COG) arrow SVGs positioned
 *   along the strip.
 * - **FOV indicator**: Optional numeric labels showing the port/starboard
 *   bearing range and current heading.
 * - **Rate of turn**: Animated linear ROT indicator (spinning dots or
 *   horizontal bar) via `rotType`. When enabled, a bottom bar is added to
 *   the strip to house the indicator.
 * - **Color priority**: Per-element priority for HDG, COG, and ROT via
 *   `priorityElements`.
 *
 * @property {number} heading - Current heading in degrees.
 * @property {number} courseOverGround - Current COG in degrees.
 * @property {RotType|undefined} rotType - ROT display mode: `'dots'`, `'bar'`, or `undefined` (hidden).
 * @property {number} rotationsPerMinute - ROT spin speed; sign controls direction.
 * @property {number} rotMaxValue - Maximum ROT value for bar-extent mapping.
 * @property {number} rotArcExtent - Degrees of bar arc per max-value ROT (default 60).
 *
 * @ignition-base-height: 170px
 * @ignition-base-width: 512px
 */
export declare class ObcCompassFlat extends LitElement {
    FOVIndicator: boolean;
    heading: number;
    courseOverGround: number;
    tickInterval: number;
    FOV: number;
    minFOV: number;
    maxFOV: number;
    priority: Priority;
    priorityElements: CompassFlatPriorityElement[];
    rotType: RotType | undefined;
    rotationsPerMinute: number;
    rotMaxValue: number;
    rotArcExtent: number;
    private containerWidth;
    private maxContainerWidth;
    private resizeObserver;
    connectedCallback(): void;
    disconnectedCallback(): void;
    generateLabels(): {
        x: number;
        y: LabelPosition;
        text: string;
    }[];
    private generateIntervalTickmarks;
    private generateCardinalTickmarks;
    private generateTickmarks;
    private renderFOVIndicator;
    private priorityFor;
    private arrowColorFor;
    private get HDGSvg();
    private COGSvg;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-compass-flat': ObcCompassFlat;
    }
}
//# sourceMappingURL=compass-flat.d.ts.map