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<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => 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
 * <mosaik-meter-bar
 *   min="0"
 *   max="100"
 *   value="65"
 *   low="30"
 *   high="80"
 *   optimum="50"
 *   label="CPU Usage">
 * </mosaik-meter-bar>
 * ```
 *
 * @example
 * Meter with segmented scale showing battery level:
 * ```html
 * <mosaik-meter-bar
 *   min="0"
 *   max="100"
 *   value="25"
 *   low="20"
 *   high="80"
 *   optimum="50"
 *   scale="segmented"
 *   label="Battery Level"
 *   variant="warning">
 * </mosaik-meter-bar>
 * ```
 *
 * @example
 * Vertical meter for temperature monitoring:
 * ```html
 * <mosaik-meter-bar
 *   min="0"
 *   max="100"
 *   value="85"
 *   low="20"
 *   high="75"
 *   optimum="50"
 *   orientation="vertical"
 *   thickness="8"
 *   label="Temperature (°C)">
 * </mosaik-meter-bar>
 * ```
 *
 * @example
 * Disk space usage meter:
 * ```html
 * <mosaik-meter-bar
 *   min="0"
 *   max="500"
 *   value="420"
 *   low="100"
 *   high="450"
 *   optimum="250"
 *   label="Disk Space (GB)"
 *   variant="error">
 *   <span slot="hint">420 GB used of 500 GB</span>
 * </mosaik-meter-bar>
 * ```
 *
 * @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 `{@link is}` property.
     * The `{@link 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<IMeterSegment>;
    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