import { default as React } from 'react';
/** Maps a value to a percentage within [min, max], clamped to 0–100. Returns 0 when max ≤ min. */
export declare const valueToPercent: (value: number, min: number, max: number) => number;
/**
 * Returns the CSS `left`/`bottom` position for a marker pin at the given percentage.
 * Offsets from track edges by `--benchmark-gauge-marker-inset` (default: 20px) so pins
 * never sit flush against the rounded track ends.
 */
export declare const markerPosition: (percent: number) => string;
/**
 * Returns the CSS `clip-path` inset (from the far end) that aligns the progress fill
 * with the marker pin's position, accounting for the same inset used by `markerPosition`.
 * At 100% returns `'0px'` so the fill covers the full track.
 * Callers suppress the fill layer entirely at 0% — this function is not called in that case.
 */
export declare const fillClipInset: (percent: number) => string;
/**
 * Default semantic rank palette, ordered lowest → highest:
 * `var(--e500)` (red) → `var(--a2900)` (amber) → `var(--s400)` (green).
 * Pass `rankColors` to the component to override.
 */
export declare const DEFAULT_RANK_COLORS: readonly string[];
/**
 * Resolves the final pin background color for a marker.
 *
 * Precedence (highest to lowest):
 *   1. `markerColor` — explicit per-marker color; always wins.
 *   2. Rank-based palette color — when `colorByRank` is true. Colors are distributed
 *      semantically: 2 markers on a 3-color palette map to the endpoints, not indices 0 and 1.
 *   3. `var(--n400)` — component default fallback.
 *
 * Edge cases: a single marker (rankCount = 1) safely maps to palette[0];
 * an empty `rankColors` array falls through to the default.
 */
export declare const resolveMarkerColor: ({ markerColor, rankIndex, rankCount, colorByRank, rankColors, }: {
    markerColor: string | undefined;
    rankIndex: number;
    rankCount: number;
    colorByRank?: boolean;
    rankColors?: string[];
}) => string;
/**
 * Resolves the start and end labels to render at each track edge.
 *
 * - `showLabels: false` (or not set) — both sides return `undefined`.
 * - `showLabels: true` — each side falls back to `String(min)` / `String(max)`.
 *   `compactLabels` switches auto-generated values to compact notation (1000 → "1K").
 * - A custom `startLabel` / `endLabel` renders as-is and overrides the fallback.
 * - Passing `null` for a side explicitly suppresses it even when `showLabels: true`.
 */
export declare const resolveLabels: ({ showLabels, startLabel, endLabel, min, max, compactLabels, }: {
    showLabels?: boolean;
    startLabel?: React.ReactNode;
    endLabel?: React.ReactNode;
    min: number;
    max: number;
    compactLabels?: boolean;
}) => {
    startLabel: React.ReactNode | undefined;
    endLabel: React.ReactNode | undefined;
};
