import { ObcChartLineBase } from '../../building-blocks/chart-line/chart-line-base.js';
import { FillMode, ScaleType } from '../../building-blocks/bar-vertical/bar-vertical.js';
import { AdviceType } from '../watch/advice.js';
import '../../building-blocks/bar-vertical/bar-vertical.js';
export { FillMode, ScaleType };
declare const ObcGaugeTrend_base: (new (...args: any[]) => import('../../svghelpers/setpoint-mixin.js').SetpointMixinInterface) & typeof ObcChartLineBase;
/**
 * Gauge Trend - A navigation instrument combining a line/area chart with an integrated vertical scale.
 *
 * This is a high-level, self-contained component that combines:
 * - A line/area chart (based on `ObcChartLineBase`) with configurable fill mode
 * - An integrated vertical scale (`obc-bar-vertical`) on the right side
 *
 * The component is designed for displaying time-series or categorical trend data alongside a calibrated
 * vertical measurement scale, commonly used in maritime navigation instruments.
 *
 * ## Architecture
 *
 * Internally composed of:
 * - **Base**: `ObcChartLineBase` (line/area graph functionality)
 * - **Right scale**: `obc-bar-vertical` (external scale component)
 *
 * ## Locked Configuration (not user-configurable)
 * - Fixed aspect ratio scaling: always enabled
 * - Instrument mode: always enabled (8px border radius)
 * - X-axis type: always 'category'
 * - Line mode: always 'smooth'
 * - Grid, tick marks, points, legend: always hidden
 * - Scale advice position: always 'inner'
 * - Scale state: automatically inherits from `state` property
 *
 * ## Usage Examples
 *
 * ### Basic gauge trend with default area fill
 * ```html
 * <obc-gauge-trend
 *   .data=${[
 *     {label: 'Jan', value: 3.5},
 *     {label: 'Feb', value: 4.2},
 *     {label: 'Mar', value: 5.0}
 *   ]}
 *   .minValue=${3}
 *   .maxValue=${7}
 *   .value=${5}
 *   .width=${480}
 *   .height=${480}
 * ></obc-gauge-trend>
 * ```
 *
 * ### Line-only (no fill) - default
 * ```html
 * <obc-gauge-trend
 *   .data=${chartData}
 * ></obc-gauge-trend>
 * ```
 *
 * ### With area fill
 * ```html
 * <obc-gauge-trend
 *   .chartFill=${true}
 *   .data=${chartData}
 * ></obc-gauge-trend>
 * ```
 *
 * ### With enhanced colors and setpoint
 * ```html
 * <obc-gauge-trend
 *   .enhanced=${true}
 *   .state=${'in-command'}
 *   .setpoint=${5.5}
 *   .value=${5.2}
 *   .hasBar=${true}
 *   .hasScale=${true}
 * ></obc-gauge-trend>
 * ```
 *
 * ### With advice overlays
 * ```html
 * <obc-gauge-trend
 *   .hasAdvice=${true}
 *   .advice=${[
 *     {min: 3, max: 5, type: 'caution', hinted: true},
 *     {min: 6, max: 7, type: 'advice', hinted: false}
 *   ]}
 * ></obc-gauge-trend>
 * ```
 *
 * @property {number} width - Chart width in pixels (defines aspect ratio)
 * @property {number} height - Chart height in pixels (defines aspect ratio)
 * @property {boolean} enhanced - Use enhanced color palette for chart and scales
 * @property {InstrumentState} state - Instrument state (automatically applied to scale)
 * @property {boolean} chartFill - Enable chart area fill (default: false for line-only)
 *
 * Setpoint properties are inherited from {@link SetpointMixin}.
 * These are forwarded to the internal `obc-bar-vertical` scale:
 * `setpoint`, `newSetpoint`, `touching`, `atSetpoint`, `autoAtSetpoint`,
 * `autoAtSetpointDeadband`, `setpointAtZeroDeadband`, `setpointOverride`.
 * See {@link SetpointMixinInterface} for full documentation.
 */
export declare class ObcGaugeTrend extends ObcGaugeTrend_base {
    private _barVerticalElement?;
    private _isFirstUpdate;
    constructor();
    firstUpdated(): Promise<void>;
    disconnectedCallback(): void;
    private _createBarVerticalElement;
    private _updateBorderRadiusPosition;
    private _updateBarVerticalProperties;
    /**
     * Scale type for the vertical scale.
     * - `'regular'`: Standard tick lengths (default)
     * - `'condensed'`: Shorter tick lengths for compact display
     *
     * Hidden from Storybook controls via argTypes configuration.
     */
    scaleType: ScaleType;
    /**
     * Minimum value for the scale range.
     * Also used as chart y-axis minimum when `chartMinValue` is undefined.
     */
    minValue: number;
    /**
     * Maximum value for the scale range.
     * Also used as chart y-axis maximum when `chartMaxValue` is undefined.
     */
    maxValue: number;
    /**
     * Minimum value for the chart y-axis.
     * When undefined, defaults to `minValue` to keep chart and scale aligned.
     */
    chartMinValue?: number;
    /**
     * Maximum value for the chart y-axis.
     * When undefined, defaults to `maxValue` to keep chart and scale aligned.
     */
    chartMaxValue?: number;
    /**
     * Current value displayed on the vertical scale.
     *
     * This is the primary value property that drives:
     * - The bar fill level (when `hasBar=true`)
     * - The dot indicator position (when `hasBar=false`)
     * - The `fillMax` value (when `fillMax` is not explicitly set)
     *
     * In typical usage, you only need to set this property to update the gauge.
     */
    value?: number;
    /**
     * Show bar on the vertical scale.
     *
     * When `true`, displays a filled bar indicating the current value.
     * When `false`, a dot indicator is automatically shown at the value position instead.
     */
    hasBar: boolean;
    /**
     * Show scale tick marks and labels.
     */
    hasScale: boolean;
    /**
     * Show advice overlays on the vertical scale.
     */
    hasAdvice: boolean;
    /**
     * Fill mode for the bar.
     * - `'fill'`: Bar fills from `fillMin` to `value` — the bar visually tracks the current value.
     *   The `fillMax` property is **ignored** in this mode.
     * - `'tint'`: Bar fills from `fillMin` to `fillMax` — an explicit highlighted range.
     *   Use this when you want to show a fixed range independent of the current value.
     *
     * In both modes, `fillMin` is the origin point (e.g., 0 in a -100..100 scale).
     */
    fillMode: FillMode;
    /**
     * Fill origin value - the starting point for the bar fill.
     * In both fill modes, the bar fills from this value toward the current value.
     * For scales like -100..100, set this to 0 to have the bar fill up or down from zero.
     */
    fillMin: number;
    /**
     * Maximum fill value for the bar (only used in `'tint'` mode).
     *
     * In `'fill'` mode, this property is **ignored** — the bar always fills to `value`.
     *
     * In `'tint'` mode, this defines the upper bound of the highlighted range.
     * When `undefined`, defaults to `value`.
     */
    fillMax?: number;
    /**
     * Advice/alert overlays for the vertical scale.
     */
    advice: Array<{
        min: number;
        max: number;
        type: AdviceType;
        hinted: boolean;
    }>;
    /**
     * Primary tick interval for the vertical scale (longest ticks with labels).
     */
    primaryTickmarkInterval?: number;
    /**
     * Secondary tick interval for the vertical scale (medium ticks).
     */
    secondaryTickmarkInterval: number;
    /**
     * Tertiary tick interval for the vertical scale (shortest ticks).
     */
    tertiaryTickmarkInterval?: number;
    /**
     * Enable chart area fill.
     * When true, fills the area under the line with semitransparent color.
     * When false (default), renders as line-only chart.
     */
    chartFill: boolean;
    /**
     * Apply fill when chartFill is true.
     */
    protected shouldApplyFill(): boolean;
    /**
     * Return the fill mode for area rendering.
     * Maps chartFill boolean to base class fillMode.
     */
    protected getFillMode(): string | undefined;
    /**
     * Stacking is not used in gauge-trend (always false).
     */
    protected shouldStack(): boolean;
    willUpdate(changed: Map<PropertyKey, unknown>): void;
    updated(changed: Map<PropertyKey, unknown>): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-gauge-trend': ObcGaugeTrend;
    }
}
//# sourceMappingURL=gauge-trend.d.ts.map