import { o as Orientation, r as SummaryStrings } from "./summary-D8UEQXYr.js"; import { n as Format } from "./format-Dq02z5ZL.js"; import { CSSProperties, ReactNode } from "react"; //#region src/core/strings-tape-gauge.d.ts type TapeGaugeStrings = Pick; //#endregion //#region src/charts/tape-gauge/geometry.d.ts type Tone = "pos" | "neg" | "warn" | "neutral"; interface Zone { from: number; to: number; tone: Tone; } //#endregion //#region src/charts/tape-gauge/index.d.ts interface TapeGaugeProps { value: number; /** Signed units-per-update; drives the chevron tier and live scroll velocity. */ rate?: number | undefined; /** Semantic bands on the scale (tone tokens only). */ zones?: readonly Zone[] | undefined; /** Visible scale extent; fixed during live updates. */ span?: number | undefined; /** Thresholds for 1 and 2 chevrons (default [span/60, span/15]). */ rateTiers?: [number, number] | undefined; orientation?: Orientation | undefined; /** `"none"` = pointer-only glyph next to an external number. */ label?: "value" | "none" | undefined; width?: number | undefined; height?: number | undefined; format?: Format | undefined; locale?: string | string[] | undefined; strings?: TapeGaugeStrings | undefined; /** Minimum in-chart label size, in viewBox units. Geometry sizes labels from * the mark and floors them at 7; this raises that floor and moves the * reserved gutter with it. A label the box cannot seat at the raised floor * drops rather than shrinking back under it. */ labelSize?: number | undefined; title?: string | undefined; summary?: string | false | undefined; id?: string | undefined; className?: string | undefined; style?: CSSProperties | undefined; children?: ReactNode | undefined; } /** Auto span: zones extent, else a rate-scaled window, else 10% of |value|. */ declare function autoSpan(value: number, zones: readonly Zone[] | undefined, rate: number | undefined): number; /** * The window this gauge actually draws, and the rate thresholds derived from * it. `span` and `rateTiers` are caller props and only finite ones are a scale: * `Infinity` passed the old `span > 0` test, so the zone stripe emitted * `y="NaN"`, `[span/60, span/15]` went infinite, and the summary announced * "steady" over a rising reading. Announced scale and painted scale have to be * the same scale, so both entries resolve through here. */ declare function resolveTapeScale(opts: { value: number; span?: number | undefined; zones?: readonly Zone[] | undefined; rate?: number | undefined; rateTiers?: [number, number] | undefined; }): { span: number; tiers: [number, number]; }; /** Shared summary — value, rate word (a separate channel), containing zone. */ declare function tapeGaugeSummary(value: number, rate: number | undefined, rateTiers: [number, number], containingZone: Zone | null, strings: TapeGaugeStrings, fmt: (n: number) => string): string; /** * The size the hero number is painted at — or `null` when it DROPS. * * The readout is sized to its gutter, then dropped below the library's 7-unit * floor (see the degradation note in the component): a small gauge shows no * number at all. One shared function, because the interactive entry reveals the * value on hover exactly when this returns `null` — so the chip can never * double up with the painted numeral, nor leave the reader with neither. */ declare function tapeGaugeReadoutFont(opts: { valueText: string; gutter: number; band: number; labelY: number; width: number; height: number; vertical: boolean; /** Minimum label size in viewBox units (the chart's `labelSize` prop). */ labelSize?: number | undefined; }): number | null; declare function TapeGauge(props: TapeGaugeProps): ReactNode; //#endregion export { tapeGaugeReadoutFont as a, resolveTapeScale as i, TapeGaugeProps as n, tapeGaugeSummary as o, autoSpan as r, TapeGauge as t };