import { c as Value, l as XY, 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-spread-band.d.ts type SpreadBandStrings = Pick; //#endregion //#region src/charts/spread-band/geometry.d.ts /** One paired reading: `a` = the subject, `b` = the reference it is judged against. */ interface SpreadDatum { a: Value; b: Value; } interface SpreadBandGeometry { /** Subject line (a) — the loud mark. */ subjectD: string; /** Reference line (b) — the quiet mark. */ referenceD: string; /** Filled regions where a > b (one ``, many subpaths). */ aLeadBand: string; /** Filled regions where a < b. */ bLeadBand: string; subjectPoints: (XY | null)[]; referencePoints: (XY | null)[]; /** Interpolated a=b crossing points (dots). */ crossings: XY[]; /** Right-hand index (0-based) of the last sign flip, or null if none. */ lastFlip: number | null; /** Last present pair — anchors the endpoint dots, gap label, leader read. */ last: { x: number; ya: number; yb: number; a: number; b: number; index: number; } | null; /** True when every present pair has a === b (identical series → one line). */ coincident: boolean; plot: { x0: number; x1: number; y0: number; y1: number; }; /** Resolved shared value domain `[min,max]` — the annotation-host y-frame. */ domain: readonly [number, number]; } //#endregion //#region src/charts/spread-band/index.d.ts /** Signed gap string — direction lives in the sign (and the text), not the color. */ declare function signedGap(gap: number, fmt: (n: number) => string): string; /** Placeholder names, used for whichever half of the pair the caller omitted. */ declare const DEFAULT_SERIES_LABELS: readonly [string, string]; /** Both names, always. A summary names the leader AND the side it leads, so a * pair that is short or blank still needs something to call the other one — * never `undefined` in a sentence. */ declare function seriesPair(labels: readonly (string | undefined)[] | undefined): [string, string]; /** Leader, gap, and last crossover. */ declare function spreadBandSummary(geo: SpreadBandGeometry, labels: readonly [string, string], fmt: (n: number) => string, strings: SpreadBandStrings): string; interface SpreadBandProps { /** Paired readings: `a` = subject, `b` = reference. Null in either = gap in both. */ data: readonly SpreadDatum[]; /** Names the two series in summaries/announcements/label. Default `["A", "B"]`. */ seriesLabels?: readonly [string, string] | undefined; /** Which lead is the good valence — `"down"` flips the fill colors. Default `"up"`. */ positive?: Polarity | undefined; /** `"gap"` (default) states the current signed gap in a right gutter. */ label?: "gap" | "none" | undefined; domain?: readonly [number, number] | undefined; width?: number | undefined; height?: number | undefined; /** Overrides the subject line stroke only. */ color?: string | undefined; format?: Format | undefined; locale?: string | string[] | undefined; strings?: SpreadBandStrings | 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; } declare function SpreadBand(props: SpreadBandProps): ReactNode; //#endregion export { signedGap as a, seriesPair as i, SpreadBand as n, spreadBandSummary as o, SpreadBandProps as r, DEFAULT_SERIES_LABELS as t };