import type { CSSProperties } from 'react';
import React from 'react';
import type { $Values } from 'utility-types';
import type { Color } from '../../common/colors';
import type { LayoutDirection as LayoutDirectionType } from '../../utils/common';
import type { ContinuousDomain } from '../../utils/domain';
/** @alpha */
export type MeterOrientation = LayoutDirectionType;
/**
 * Distinct thickness presets for the DOM Meter component.
 * @alpha
 */
export declare const MeterSize: Readonly<{
    Small: "small";
    Medium: "medium";
    Large: "large";
}>;
/** @alpha */
export type MeterSize = $Values<typeof MeterSize>;
/**
 * Supported fill styles for the Meter component.
 * @alpha
 */
export declare const MeterFillStyle: Readonly<{
    Single: "single";
    Solid: "solid";
    Gradient: "gradient";
}>;
/** @alpha */
export type MeterFillStyle = $Values<typeof MeterFillStyle>;
/**
 * A domain-aware color stop used for solid and gradient fills.
 * @alpha
 */
export interface MeterColorStop {
    color: Color;
    /**
     * Domain value where this stop applies.
     * Use the same units as `domain`, not a normalized 0-100 track percentage.
     */
    stop: number;
}
/**
 * A single-color Meter fill.
 * @alpha
 */
export interface MeterSingleFill {
    type: typeof MeterFillStyle.Single;
    color: Color;
}
/**
 * A palette-driven Meter fill.
 * @alpha
 */
export interface MeterPaletteFill {
    type: 'palette';
    /**
     * Resolves either a single interpolated palette color or a revealed gradient.
     */
    style: Exclude<MeterFillStyle, typeof MeterFillStyle.Single>;
    /**
     * Domain-valued color stops used to resolve solid and gradient fills.
     */
    colorStops: MeterColorStop[];
    /**
     * Used when no stop can be resolved, such as an empty stop list.
     */
    fallbackColor?: Color;
}
/**
 * Supported Meter fill configurations.
 * @alpha
 */
export type MeterFill = MeterSingleFill | MeterPaletteFill;
/**
 * Props for the reusable DOM Meter component.
 * @alpha
 */
export interface MeterProps {
    value: number;
    domain: ContinuousDomain;
    fill: MeterFill;
    trackColor: Color;
    orientation?: MeterOrientation;
    size?: MeterSize;
    /**
     * Domain value from which the fill grows.
     * Values at or above the baseline fill toward the track end; values below it fill
     * back toward the track start. Defaults to `0`.
     */
    baseline?: number;
    target?: number;
    markerColor?: Color;
    fillBorderColor?: Color;
    fillBorderWidth?: number;
    /**
     * Shows a marker at `baseline` when the baseline lies within `domain`.
     */
    showBaselineMarker?: boolean;
    /**
     * Rounds the track edge at the start of the domain.
     * The track start is the left edge for horizontal meters and the bottom edge for vertical meters.
     */
    roundTrackStart?: boolean;
    /**
     * Rounds the track edge at the end of the domain.
     * The track end is the right edge for horizontal meters and the top edge for vertical meters.
     */
    roundTrackEnd?: boolean;
    /**
     * Rounds the fill edge at the start of the filled span.
     * The fill start is the baseline-side edge, so it follows the direction from `baseline` to `value`.
     * When `value < baseline`, the physical start edge flips to the right for horizontal meters and the top for vertical meters.
     */
    roundFillStart?: boolean;
    /**
     * Rounds the fill edge at the end of the filled span.
     * The fill end is the value-side edge, so it follows the direction from `baseline` to `value`.
     * When `value < baseline`, the physical end edge flips to the left for horizontal meters and the bottom for vertical meters.
     */
    roundFillEnd?: boolean;
    className?: string;
    style?: CSSProperties;
    title?: string;
    valueTitle?: string;
    targetTitle?: string;
    ariaLabel?: string;
    ariaValueText?: string;
    ariaValueMin?: number;
    ariaValueMax?: number;
    ariaValueNow?: number;
}
/** @alpha */
export declare const Meter: React.FunctionComponent<MeterProps>;
//# sourceMappingURL=meter.d.ts.map