import { MeterRange } from '../../../Types/MeterRange'; import { MeterScale } from '../../../Types/MeterScale'; import { RangeBaseElement } from '../Abstracts/RangeBaseElement'; import type { IMeterBarElementProps } from './IMeterBarElementProps'; /** * Represents segment information for the segmented scale mode. * * @private */ interface IMeterSegment { /** * The range type of the segment. */ range: MeterRange; /** * The width percentage of the segment (0-100). */ width: number; } declare const MeterBarElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Labelable").ILabelableProps) & typeof RangeBaseElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * MeterBar - A horizontal or vertical gauge for displaying numeric measurements within defined ranges. * * @description * The MeterBar component provides visual representation of measurements with contextual coloring * based on optimum, low, and high thresholds. Supports both continuous and segmented display modes, * making it ideal for showing performance metrics, resource usage, battery levels, and other * quantitative data where visual ranges matter. Features smooth transitions, accessibility support, * and flexible styling options for diverse use cases. * * @name MeterBar * @element mosaik-meter-bar * @category Ranges * * @slot label - Text label content area for meter description or value display * @slot hint - Secondary text content area for additional meter information or status * * @csspart label - Text label styling container for meter information * @csspart bar - Main meter bar container element * @csspart fill - Filled portion of the meter indicating current value in continuous mode * @csspart segments - Container for individual range segments in segmented mode * @csspart segment - Individual segment element representing a specific range (low/optimum/high) * @csspart marker - Position indicator showing current value in segmented mode * @csspart hint - Hint text styling container for additional information * * @cssprop {String} --meter-bar-fill-color-high - Fill color for high range values (above high threshold) * @cssprop {String} --meter-bar-fill-color-low - Fill color for low range values (below low threshold) * @cssprop {String} --meter-bar-fill-color-optimum - Fill color for optimum range values (between low and high) * @cssprop {String} --meter-bar-marker-color - Color of the marker indicator in segmented mode * * @dependency {TextElement} - For rendering meter labels and text content * * @fires rangeValueChanged {RangeValueChangedEvent} - Fired when the meter value changes * * @example * Basic meter with continuous scale: * ```html * * CPU Usage * * ``` * * @example * Meter with segmented scale showing battery level: * ```html * * Battery Level * * ``` * * @example * Vertical meter for temperature monitoring: * ```html * * Temperature (°C) * * ``` * * @example * Disk space usage meter: * ```html * * Disk Space (GB) * 420 GB used of 500 GB * * ``` * * @public */ export declare class MeterBarElement extends MeterBarElement_base implements IMeterBarElementProps { private _thickness; private _high; private _low; private _optimum; private _range; private _scale; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the thickness property. * * @public * @attr */ get thickness(): number; set thickness(value: number); /** * Gets or sets the `high` property. * * @public * @attr */ get high(): number; set high(value: number); /** * Gets or sets the `low` property. * * @public * @attr */ get low(): number; set low(value: number); /** * Gets or sets the `optimum` property. * * @public * @attr */ get optimum(): number; set optimum(value: number); /** * Gets or sets the `range` property. * * @public * @readonly * @attr */ get range(): MeterRange; private set range(value); /** * Gets or sets the `scale` property. * Determines how the meter scale is visually represented. * - `continuous`: Single continuous bar with color based on current range (default). * - `segmented`: Visible segments for low, optimum, and high zones with a marker for the current value. * * @public * @attr */ get scale(): MeterScale; set scale(value: MeterScale); /** * Gets the percentage of the current value within the range (0-100). * * @public * @readonly */ get percent(): number; /** * Gets the segments for the segmented scale mode. * Returns an array of segments representing low, optimum, and high zones. * * @public * @readonly */ get segments(): Array; protected onPropertyChanged(): void; } /** * @public */ export declare namespace MeterBarElement { type Props = IMeterBarElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-meter-bar': MeterBarElement; } } export {}; //# sourceMappingURL=MeterBarElement.d.ts.map