import { o as Orientation, r as SummaryStrings } from "./summary-D8UEQXYr.js"; import { CSSProperties, ReactNode } from "react"; //#region src/core/strings-time-in-range.d.ts type TimeInRangeStrings = Pick; //#endregion //#region src/charts/time-in-range/geometry.d.ts type ZoneKey = "severeBelow" | "below" | "in" | "above" | "severeAbove"; interface TimeInRangeDatum { severeBelow?: number | undefined; below: number; in: number; above: number; severeAbove?: number | undefined; } //#endregion //#region src/charts/time-in-range/index.d.ts interface TimeInRangeProps { data: TimeInRangeDatum; /** Vertical matches the clinical-column convention and fits KPI cards. */ orientation?: Orientation | undefined; /** `"in"` = the headline read; `"all"` = per-zone audit; `"none"` = clean. */ label?: "in" | "all" | "none" | undefined; width?: number | undefined; height?: number | undefined; locale?: string | string[] | undefined; strings?: TimeInRangeStrings | 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; } /** Present-zone integer percents keyed by zone — label + summary read the same. * Zones come from `presentZones`, the one place the "which zones are present" * rule lives, so the announced list can never differ from the painted strip. */ declare function zonePercentMap(data: TimeInRangeDatum): Partial>; /** The one way this chart writes a zone share. Zone percents are integers that * must still sum to 100, so only their SPELLING is localized: `${n}%` is an * en-US percent (fr-FR wants a NBSP before the sign, tr-TR puts it first). * `locale` is the chart's own prop, threaded so a server render and its client * hydration resolve the same string instead of each taking its host default. * Trailing and optional: callers that never localized keep compiling. */ declare const tirPercent: (locale?: string | string[] | undefined) => ((zonePct: number) => string); /** Shared summary — leads with the in-range headline, then the misses. */ declare function timeInRangeSummary(data: TimeInRangeDatum, strings: TimeInRangeStrings, pctFmt?: (zonePct: number) => string): string; declare function TimeInRange(props: TimeInRangeProps): ReactNode; //#endregion export { zonePercentMap as a, tirPercent as i, TimeInRangeProps as n, timeInRangeSummary as r, TimeInRange as t };