import { c as Value, r as SummaryStrings, s as Polarity } from "./summary-D8UEQXYr.js"; import { n as Format } from "./format-Dq02z5ZL.js"; import { CSSProperties, ReactNode } from "react"; //#region src/core/strings-percentile-trace.d.ts type PercentileTraceStrings = Pick; //#endregion //#region src/charts/percentile-trace/geometry.d.ts /** How the entity's standing moved relative to the middle half (p25–75). */ type PercentileMovement = "roseAbove" | "fellBelow" | "enteredMiddle" | "heldAbove" | "heldMiddle" | "heldBelow"; interface PercentilePoint { /** Original series index (0 = first reading). */ index: number; x: number; y: number; value: number; } interface BandRect { x: number; y: number; width: number; height: number; } interface PercentileGeometry { line: { d: string; }; /** Per-reading positions — overlays + nearest-x. */ points: PercentilePoint[]; /** Last finite reading — endpoint dot + label anchor. */ last: PercentilePoint; /** First finite reading — frames the drift story. */ first: PercentilePoint; /** last − first, in percentile points (2-dp). */ delta: number; movement: PercentileMovement; /** Fixed population bands: inner = p25–75, outer = p5–95. */ bands: { inner: BandRect; outer: BandRect; }; /** Left edge of the plot box — reading 0 sits here. */ x0: number; /** Right edge of the plot box — the last reading. Excludes the label gutter. */ x1: number; /** Top edge of the plot box — the p100 end of the locked axis. */ y0: number; /** Bottom edge of the plot box — the p0 end. Also the inline seat's floor. */ y1: number; /** True when any finite input fell outside 0–100 and was clamped. */ clamped: boolean; } //#endregion //#region src/charts/percentile-trace/index.d.ts declare function percentileSummary(geo: PercentileGeometry, pStr: (n: number) => string, fmt: (n: number) => string, strings: PercentileTraceStrings): string; interface PercentileTraceProps { /** Percentile ranks per reading, 0–100 (out-of-range values are clamped). */ data: readonly Value[]; /** Rank extent. Default [0, 100] — the full ladder, the honest frame. */ domain?: readonly [number, number] | undefined; /** Draw the fixed p25–75 + p5–95 population bands (default true). */ showBands?: boolean | undefined; /** Which direction is good — colors the endpoint dot (default "up"). */ positive?: Polarity | undefined; /** `"last"` states the final percentile in a right gutter. */ label?: "last" | "none" | undefined; width?: number | undefined; height?: number | undefined; color?: string | undefined; format?: Format | undefined; locale?: string | string[] | undefined; strings?: PercentileTraceStrings | 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; } /** Integer formatting shared with the interactive entry. */ declare const INT: Intl.NumberFormatOptions; /** * Right gutter reserved for the `label="last"` readout, in viewBox units — it * WIDENS the viewBox (`width + gutter`), so it is also the interactive entry's * pointer basis. Exported because the client must scale pointer x by the same * total the static drew with; scaling by bare `width` walks the crosshair * progressively rightward and puts the last readings out of reach. */ declare const percentileGutter: (labelText: string, height: number, min?: number) => number; /** * Does the box have vertical room for the readout at all? `labelFont` floors at * 7 viewBox units, so under a 7-unit-tall box a line of text cannot be seated * inside the plot — it DROPS rather than spilling past the viewBox, and the * gutter above drops with it so the trace keeps its own width instead of * reserving space for text nobody draws. Exported for the same reason the * gutter is: both entries must reach the same answer. Pure arithmetic — the * static path may never measure text. */ declare const percentileLabelFits: (height: number, min?: number) => boolean; declare function PercentileTrace(props: PercentileTraceProps): ReactNode; //#endregion export { percentileLabelFits as a, percentileGutter as i, PercentileTrace as n, percentileSummary as o, PercentileTraceProps as r, PercentileTraceStrings as s, INT as t };